Как я должен закодировать мой обработчик событий для моего приложения C # Windows Form?

#c# #winforms #event-handling

#c# #winforms #обработка событий

Вопрос:

В настоящее время я разрабатываю приложение C # Windows Form, которое я намерен разрешить ему взаимодействовать с сервером. Сервер будет получать публикации из разработанного мной мобильного приложения, и всякий раз, когда будет получена публикация, мое приложение Windows Form должно получать уведомления и отправлять мне уведомление.

Например, мое мобильное приложение отправляет сообщение на мой сервер. Как только мой сервер получит сообщение, мое приложение Windows form должно отобразить новое уведомление, показывающее содержимое полученного сообщения.

Приведенный выше сценарий — всего лишь пример того, что я намерен сделать со всем этим. Есть идеи, как мне следует закодировать мое приложение на C #, чтобы получать информацию, указанную выше?

Ответ №1:

Вы можете реализовать службу WCF на своем сервере. Ваше приложение Windows Form может быть вашим клиентом службы WCF.

Что вам, вероятно, нужно, так это двусторонний сервис

Способ, которым это будет работать, заключается в

  1. Служба WCF запущена на вашем сервере
  2. Windows Form подключается к вашей серверной службе WCF с использованием двустороннего контракта
  3. Мобильное приложение отправляет сообщения на сервер
  4. Служба WCF знает об этом и, используя канал обратного вызова, уведомляет клиента WCF
  5. Ваше приложение Form, известное как клиент WCF, обновляет пользовательский интерфейс с помощью этого нового полученного сообщения

Комментарии:

1. привет. спасибо за ваш ответ. что касается шага 4, как служба узнает, когда мобильное приложение отправляет сообщение на сервер?

2. @Thomas без подробностей о мобильном приложении plaform сложно ответить. Можете ли вы подключиться к стандартному веб-сервису из мобильного приложения? Возможно, вы можете предоставить это с сервера

3. когда сервер получает публикацию, он вызывает метод из службы WCF, чтобы сообщить, что он отправил публикацию, и отправляет информацию повторно. Как только метод будет вызван (шаг 4), служба wcf получит информацию. Но с этого момента, как он отправляет информацию второму клиенту, используя канал обратного вызова?

4. о. моя ошибка. должно быть, неправильно щелкнул. не хотел этого делать.

5. Типичным способом для сервера является отслеживание всех каналов обратного вызова. Итак, когда мобильное приложение публикует… сервер должен будет уведомить все каналы обратного вызова

Ответ №2:

В качестве альтернативы ответу @parapura rajkumar вы могли бы также исследовать архитектуру очереди сообщений, где сообщения, отправленные обратно из мобильного приложения, видны как серверу, так и клиенту Windows.

Возможно, это немного тяжеловеснее, но, безусловно, заслуживает рассмотрения, особенно если вы подозреваете, что в будущем приложению может потребоваться усложнение…