Бинарные сокетные соединения в реальном времени с браузерным Javascript - PullRequest
2 голосов
/ 06 июля 2011

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

При необходимости я могувставить прокси-приложение, которое может переводить между браузером и сервером, но я хочу, чтобы это было как можно меньше.И сервер, или это прокси-приложение, которое обращается к серверу, может находиться в том же домене, что и веб-страница, если это влияет на модель безопасности.

Мне известны подобные Socket.IO,что, кажется, близко к тому, что я хочу, но трудно сказать, каковы возможности и ограничения.Я также знаю, что это было бы довольно легко с Java-апплетом, но я бы предпочел решение, которое не требует плагина (или, в худшем случае, требует только Flash, но я все же хочу в большинстве случаев выполнять Javascript в идеале).

Кроме того, важна межплатформенная доступность - если я смогу достичь 70% браузеров для настольных компьютеров, это нормально.Хотя не надо беспокоиться о древних браузерах - я не против заставить пользователя обновиться, только чтобы не устанавливать что-то новое.Также было бы здорово, если бы он работал на iPhone и Android тоже.

Какие мои лучшие варианты?

1 Ответ

1 голос
/ 06 июля 2011

Апплет Flash, использующий XMLSocket, вероятно, является лучшим выбором, если не важна совместимость с мобильными устройствами.Это накладывает некоторые ограничения на формат данных, которые вы можете отправлять (все данные отправляются в пакетах, разделенных NUL), но это достаточно просто для прокси при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...