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

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

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


person SonOfPirate    schedule 06.10.2011    source источник


Ответы (2)


Ради закрытия, я подумал, что поделюсь тем, что мы закончили.

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

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

person SonOfPirate    schedule 21.10.2011

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

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

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

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

person leggetter    schedule 06.10.2011
comment
Хостинговый сервис не вариант. Это внутренние приложения, работающие в ОЧЕНЬ безопасных, автономных средах (т. е. без доступа извне), а количество установок исчисляется тысячами. - person SonOfPirate; 06.10.2011
comment
Pusher также полагается на WebSockets, которые, мягко говоря, ненадежны в SL4, не говоря уже о том, что они требуют, чтобы приложение SL запускалось в браузере, чего мы, конечно, не делаем. ;-) - person SonOfPirate; 06.10.2011
comment
Если вы контролируете среду выполнения и сеть, вы определенно можете заставить WebSockets работать надежно. Я был бы удивлен, если бы WebSockets нужно было запускать в браузере. Реализация использует базовый сетевой стек SL. Но это может быть так. - person leggetter; 07.10.2011