#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. Но это может быть так.