как использовать запасные варианты в socket.io для обеспечения длительного опроса на сервере веб-сокетов?

У меня есть существующий сервер веб-сокетов, который обслуживает json через веб-сокеты для обмена мгновенными сообщениями на каком-то порту, отличном от http/s.

Это отлично работает для браузеров, поддерживающих протокол websocket, но не позволяет многим другим браузерам использовать эту функцию.

Я читал о socket.io и nodejs и думал о добавлении прокси-сервера с использованием socket.io и nodejs перед сервером веб-сокетов для обработки всех запросов веб-сокетов. Поскольку socket.io поддерживает резервный вариант с использованием флэш-веб-сокетов или длинных опросов, я надеялся, что использование socket.io на стороне клиента также позволит поддерживать все старые браузеры.

Итак, мои вопросы,

  1. Возможен ли описанный выше подход?
  2. Как в nodejs должен обрабатываться откат к длительному опросу? Это обрабатывается автоматически или необходимо реализовать?
  3. Любые существующие ресурсы, которые могут мне помочь.

Спасибо


person Gary    schedule 04.09.2011    source источник


Ответы (1)


  1. Это можно сделать осуществимым. Однако я предлагаю использовать NodeJS и Socket.IO как для вашего не-http-запроса, так и для http-запроса для браузеров. NodeJS очень легко справляется с ними.
  2. Socket.IO автоматически обрабатывает откат.
  3. Пример простой системы чата здесь для http.
person Bangon Kali    schedule 04.09.2011
comment
Итак, будет ли работать следующее? Здесь я предполагаю, что прокси-серверу node.js нужно будет только объявить поддержку транспорта, и ему просто нужно обработать то, что это соединение через веб-сокет на обоих концах (без специальной обработки для кометы или флэш-сокета). Браузер IE6 (socket.io) ‹=(long poll/flash socket)=› Прокси (node.js+socket.io) ‹=(websocket)=› Чат-сервер WebSocket - person Gary; 05.09.2011