(Простое) Push-уведомление с использованием REST с Silverlight 4?

#rest #silverlight-4.0 #push-notification #server-push

#rest #silverlight-4.0 #push-уведомление #сервер-push

Вопрос:

Каков наилучший способ реализовать службу push-уведомлений с использованием служб RESTful WCF с клиентами Silverlight 4?

В настоящее время мы используем метод опроса для вызова службы REST для получения обновлений. Я бы предпочел, чтобы сервер отправлял или транслировал уведомления.

Ответ №1:

В заключение я решил поделиться тем, что мы в итоге сделали.

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

Это не RESTful, но поскольку клиент не отправляет запросы, не имело особого смысла реализовывать RESTful.

Ответ №2:

Вы могли бы попробовать использовать Pusher (на которого я работаю) и нашу библиотеку Silverlight. Смотрите: http://pusher.com/docs/client_libraries#dotnet

Обновление: поскольку вы заявляете, что не можете использовать размещенную службу и не хотите использовать WebSockets (хотя я бы все же предположил, что WebSockets — лучший вариант), вы можете обеспечить надежную потоковую передачу HTTP. Я бы рекомендовал вам использовать выделенный сервер реального времени для ваших push-уведомлений, если вам нужно масштабировать свое приложение. Вы можете найти список решений для самостоятельного размещения в реальном времени здесь: http://www.leggetter.co.uk/real-time-technologies-guide

Twitter использует Jetty для своего HTTP Streaming API (Firehose и т. Д.), Поэтому Он обеспечит масштабируемое и надежное решение.

С удовольствием предоставлю дополнительную информацию, если вы сможете подробнее ответить на свой вопрос.

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

1. Размещенный сервис — это не вариант. Это внутренние приложения, работающие в ОЧЕНЬ безопасных, автономных средах (т. Е. Без внешнего доступа), а количество установок исчисляется тысячами.

2. Pusher также полагается на WebSockets, которые, мягко говоря, ненадежны в SL4, не говоря уже о том, что они требуют запуска приложения SL в браузере, чего, конечно, у нас нет. 😉

3. Если вы контролируете среду выполнения и сеть, вы определенно можете заставить WebSockets работать надежно. Я был бы удивлен, если WebSockets нужно запускать в браузере. В реализации используется базовый сетевой стек SL. Но это может быть так.