WebSockets кажется довольно хорошим выбором.Отключение WebSockets в Firefox 4 и Opera 11, вероятно, носит временный характер, поскольку рабочая группа начала выпускать проекты, в которых рассматриваются проблемы.Кроме того, резервная копия флэш-памяти web-socket-js будет по-прежнему работать даже в браузерах, в которых отключены собственные веб-сокеты.Также стоит отметить, что iOS 4.2 имеет встроенные WebSockets.Так что с нативным WebSockets + fallback WebSockets поддерживается практически везде.
Если вы используете WebSockets, вы также можете рассмотреть возможность отправки обновлений, а не проведения опроса клиентов.Это поможет предотвратить случайную DDOS-работу сервера с клиентами.Задержка будет только увеличиваться для клиентов, и в этот момент вы можете начать добавлять больше ресурсов на стороне сервера.
Если Javascript на стороне сервера не исключен, то вы можете проверить Socket.IO , который представляет собой инфраструктуру Nodejs WebSockets, которая выбирает лучший транспорт, который автоматически поддерживается и клиентом, и сервером (предпочитая нативные WebSockets, затем откат WebSockets, а затем различные варианты длинного опроса).Это также позволяет серверу и клиентскому коду выглядеть очень похоже, поскольку включает библиотеку на стороне клиента.На данный момент Socket.IO, похоже, имеет немало идей.
Если вы ориентированы на Ruby, вы, вероятно, захотите проверить em-websockets .И Socket.IO, и em-websockets являются серверами, основанными на событиях, которые позволяют очень большое количество клиентов, особенно там, где первостепенное значение имеет задержка, а не пропускная способность.