Как реализовать службу TCP / IP-ответчика в веб-приложении - PullRequest
2 голосов
/ 25 ноября 2011

У меня есть следующая архитектура для проекта, над которым я работаю.

Architecture Drawing

Мой вопрос заключается в том, как начать реализацию ответной части TCP / IP. Его функция в случае, если диаграмму трудно прочитать, заключается в ожидании соединения от клиента просмотра заказов и последующего уведомления указанного клиента о входящих заказах.

Я думал об очереди, но, к сожалению, я не знаю, где что-то подобное вписалось бы в иерархию вещей VS2008.

Если это часть веб-страницы ASP.NET, следует ли использовать событие запуска приложения для запуска IP-ответчика TCP?

Это не веб-сервис, потому что те отвечают на запросы http ...

Ответы [ 2 ]

4 голосов
/ 26 ноября 2011

Если бы мне пришлось внедрить ваш «ответчик TCP», я бы, вероятно, реализовал его как службу Windows, и к нему обратились бы и приложение ASP.NET, и клиент Winform (например, чтобы избежать проблемы утилизации ASP.NETи т. д.)

Тем не менее, я могу придумать gazillion более простые способы получить эффект, которого вы хотите достичь (чтобы клиент winform узнал о новых заказах), например

  • ИспользованиеОчереди, как вы упомянули.Windows поставляется с MSMQ (необходимо добавить его в функции добавления окон).Использовать MSMQ из C # довольно просто .Вы также можете использовать WCF, если хотите,
  • , предоставляя конечную точку http на клиенте и заставить клиента уведомлять сервер ASP.NET, где он прослушивает, вызывая один из них.его страниц
  • записывает заказы в БД и опрашивает их у клиента / использует System.Data.SqlClient.SqlDependency, чтобы узнать, когда есть изменение

Черт, даже записывает заказык файлу в общей папке с FileSystemWatcher будет работать (хотя я бы, вероятно, не рекомендовал бы это)

1 голос
/ 25 ноября 2011

Почему вы не используете http?У вас уже есть http-сервер, поэтому вам не нужен TCP-ответчик - просто выполните http-опрос на клиенте.А если вы не хотите опрашивать или у вас слишком много клиентов, вы можете использовать что-то вроде SignalR для уведомлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...