为什么pubnub javascript sdk(?)通过Websocket选择XHR?

我正在开发简单的浏览器实时多人游戏(玩家atm游戏中的两名玩家)。 它涉及快速和频繁的玩家移动和方向改变,因此必须非常快速地交换信息 - 我决定尝试使用websockets(很乐意使用pubnub服务而不是自托管套接字服务器)。

我的问题是,pubnub总是决定使用xhr fallback而不是websockets - 不知道为什么。 通过websockets运行通信是否有任何必须满足的具体要求? Http显然太慢并且会导致失败。 我在Mac上使用最新的Chrome浏览器,因此浏览器兼容性不是问题。

或者,也许有很多变量来确定通信协议,这个问题是不能回答的? 我唯一的解决方案是使用自托管套接字服务器?


实时协议WebSockets和XHR与PubNub

现代数据流网络和开源解决方案从XHR开始。 出于多种原因,从包含速度开始,这是最佳选择。 性能取决于光速以及以太网帧能够在互联网设备之间传输的速度。 这是协议独立性的基础,也是互联网上信息延迟和速度的核心决定因素。 PubNub客户端SDK(如JavaScript)不提供强制特定协议的设置。

PubNub如何工作

请参阅PubNub Works如何向下滚动鼠标演示。

PubNub数据流网络

PubNub是全球最快的全球数据流网络,全球共有15个数据中心,可满足您的高速和低延迟要求。 超过40亿个连接到PubNub数据流网络体验的设备每个消息的发送/接收速度从10ms到100ms不等。

协议独立是什么?

PubNub数据流网络背后的人们相信协议独立性和开放移动网络; 这意味着我们将使用最好的协议通过任何环境获得连接。 像WebSockets这样的协议可能会受到手机信号塔切换,双重NAT环境,甚至一些防病毒软件或代理边界机构的影响。

PubNub专门提供客户端库,因此我们可以自动切换协议,并消除套接字级别的复杂性,使开发人员可以轻松构建可实时通信的应用程序。

随着时间的推移,PubNub已经使用了各种协议,如WebSockets ,MQTT,COMET,BOSH, 长轮询等等,我们正在探索使用SPDY,HTTP 2.0等原型设计未来设计。 底线是PubNub可以在每个网络环境中工作,并且具有非常低的网络带宽开销以及移动设备上的低电池消耗。


您也可以尝试使用WebSockets作为第一选项协议(包括XHR回退)的其他云服务,如Pusher和Realtime(我工作的公司)。

链接地址: http://www.djcxy.com/p/83043.html

上一篇: Why pubnub javascript sdk (?) choses XHR over Websocket?

下一篇: devcon disable cannot disable device not found