Как я могу получить сообщение от Asp.Net WebAPI

У меня небольшая проблема. Мне нужно написать клиент-серверное приложение, которое делает некоторые вещи.

Клиентская сторона: консольное приложение, которое ожидает сообщения с веб-сайта и отвечает на эти сообщения.

На стороне сервера: веб-приложение на другом клиенте, сделайте что-нибудь и после этого контроллера создайте сообщение и отправьте его на сторону клиента.

На стороне сервера я хочу использовать asp.net mvc с webapi и консольным приложением .net на стороне клиента. Но я не понимаю, как я могу получать сообщения с сайта, такие как push в консоли.

Для решения моей проблемы у меня есть одна идея: каждые 5 секунд клиент спрашивает сервер. Но я думаю, что это неправильно. Пожалуйста, дайте мне правильное решение для этого.

Спасибо.


person Alexander Mashin    schedule 02.10.2015    source источник
comment
Привет, если я понимаю вашу проблему, вам нужно отправить любое сообщение из веб-API в консольное приложение, если это так, я могу предложить вам варианты: 1) SignalR, предназначенный для приложений реального времени asp.net/signalr и 2) WebHooks, модель которых аналогична signalr: blogs.msdn.com/b/webdev/archive/2015/09 /04/   -  person Julito Avellaneda    schedule 02.10.2015


Ответы (2)


Лично я бы создал отдельный поток, единственной целью этого потока было бы непрерывное прослушивание (без помех основному процессу), чтобы увидеть, есть ли что-то, что нужно поймать, поэтому, как только что-то есть, обработайте это.

person Antoine Pelletier    schedule 02.10.2015

На вашем месте я бы посмотрел на дуплексы. Они позволяют серверам отправлять сообщения клиенту.

Вот документация: https://msdn.microsoft.com/en-us/library/ms731064(v=vs.110).aspx

Вот простой пример, который я написал для него пару лет назад: https://github.com/Aelphaeis/MyWcfDuplexPipeExample/blob/master/MyWcfDuplexExample.Client/Program.cs

Есть некоторые проблемы с использованием дуплексов в производственных средах, поэтому я предлагаю вам прочитать об этом.

person Aelphaeis    schedule 02.10.2015