Почему PubNub javascript sdk (?) выбирает XHR над Websocket?

Я разрабатываю простой многопользовательский браузер в режиме реального времени (2 игрока в игровом банкомате). Он включает в себя быстрые и частые движения игрока и изменения направления, поэтому информация должна быть обменена очень быстро - я решил попробовать websockets (был бы рад использовать сервис pubnub вместо самостоятельного хостинга socket server).

моя проблема в том, что pubnub всегда решает использовать резервный xhr вместо websockets - не знаю почему. Существуют ли какие-либо конкретные требования, которые должны быть выполнены для запуска связи через websockets? Http, очевидно, слишком медленный и убивает опыт. Я использую последний Chrome на Mac, поэтому совместимость с браузером не является проблемой.

или, может быть, существует так много переменных для определения протокола связи, что на вопрос нельзя ответить? И мое единственное решение-использовать self-hosted socket server?

2 ответов


Websockets протокола реального времени и XHR с PubNub

современные сети потоков данных и решения с открытым исходным кодом начинаются с XHR. По нескольким причинам это оптимально для начала, включая скорость. Производительность зависит от скорости света и скорости передачи кадров Ethernet между устройствами в интернете. Это основа для независимость протоколом и определитель ядра для латентности и скорости сообщений через интернет. клиентские SDK PubNub, такие как JavaScript, не предоставляют параметр для принудительного выполнения определенного протокола.

Как Работает PubNub

посмотреть Как Работает PubNub прокрутите вниз для демонстрации мыши.

PubNub Data Stream Network

PubNub-это самая быстрая глобальная сеть потоков данных, доступная сегодня с 15 центрами обработки данных по всему миру для поддержки ваших требований к высокой скорости и низкой задержке. Более 1/4 млрд устройств, подключенных к Опыт сети потока данных PubNub скорость передачи/приема от 10 мс до 100 МС на сообщение.

Что такое независимость протокола?

люди за Сеть Потока Данных PubNub веришь в независимость протокола и Открытая мобильная сеть; это означает, что мы будем использовать лучший протокол для подключения через любую среду. Протоколы, как WebSockets, можно сделать подножку на вышку переключение, двойной NAT среды и даже некоторые антивирусные программы или прокси-серверы.

PubNub предоставляет клиентские библиотеки специально, чтобы мы могли автоматическое переключение протокола и удалить сложности на уровне сокетов, что облегчает разработчикам создание приложений, которые могут общаться в режиме реального времени.

PubNub использовал различные протоколы с течением времени, как WebSockets, MQTT, КОМЕТА, БОШ,опроса и другие, и мы изучаем в настоящее время прототипирование будущих проектов с использованием SPDY, HTTP 2.0 и других. Суть в том, что PubNub будет работать в любой сетевой среде и имеет очень низкую пропускную способность сети, а также низкий расход батареи на мобильных устройствах.


вы также можете попробовать другие облачные службы, которые используют WebSockets в качестве протокола первого варианта (с резервными XHR), например толкатель и в реальном времени (компания в которой я работаю).