полнодуплексная связь через Интернет без флеш-разъемов - PullRequest
0 голосов
/ 18 июня 2010

Веб-приложение, которое я помогаю разработать, столкнулось с хорошо известной проблемой: мы хотим, чтобы пользователи могли знать о различных событиях и т. Д., Которые могут происходить в любое время, в основном случайным образом, и обновлять свои смотреть соответственно. По сути, нам нужно разрешить серверу отправлять запросы отдельным клиентам, а не клиенту, запрашивающему сервер.

Я понимаю, что WebSockets - это попытка решить проблему; однако после небольшого осмотра я понимаю, что а) очень немногие веб-браузеры в настоящее время предлагают встроенную поддержку веб-сокетов; б) чтобы обойти это, вы либо используете флеш-сокеты, либо какой-то длинный опрос AJAX; c) должен использоваться специальный сервер веб-сокетов.

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

Начиная с 2008 года все говорили, что решения на основе Comet (например, Bayeux) были подходящим решением для подобных ситуаций. Однако с тех пор, похоже, что в различные протоколы не было вложено много работы, что приводит (наконец) к вопросу.

Является ли Comet со вкусом Bayeux подходящим инструментом для подобных работ? Если нет, то что?

Ответы [ 2 ]

1 голос
/ 18 июня 2010

Альтернативой Comet / Bayeux, которая доказала свою работоспособность, является комбинация сервера XMPP, такого как ejabberd или OpenFire и StropheJS, разработанная Джеком Моффитом (его веб-сайт http://metajack.im/).. Ограничение XMPP заключается в том, что он может только транспортирует текст, а не двоичную полезную нагрузку.

0 голосов
/ 16 февраля 2012

WebSockets звучит как идеальное решение вашей проблемы - я бы не советовал идти по пути кометы / байе.Относительно ваших первых двух проблем:

a) очень немногие веб-браузеры в настоящее время предлагают встроенную поддержку веб-сокетов

Серверы WebSocket обычно предлагают методы эмуляции для браузера, у которого нет собственныхПоддержка WebSocket. Здесь вы можете прочитать об эмуляции , которую предлагает один из поставщиков, Каазинг [заявление об отказе: я работаю на Каазинг] .

b) [Эмуляция WebSocketиспользует] флеш-сокеты или что-то вроде AJAX long-polling

Не совсем так.Хорошо делать эмуляцию не просто, но это можно сделать.Длинные опросы - это, в конце концов, последнее средство.Например, Kaazing Gateway всегда использует лучшую эмуляцию, чем длинный опрос.

Kaazing также предлагает XMPP-версию WebSocket Gateway, позволяющую создавать приложение HTML5 с использованием XMPP непосредственно из среды JavaScript.Основным транспортным уровнем XMPP является WebSockets (собственный или эмулированный).

...