Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – socket.io何时使用轮询而不是websockets?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是socket.io的新手,并在Node / express / socket.io中编写了我的第一个应用程序.现在一切都在我的Nginx服务器上运行良好.我想向公众发布我的应用程序,但我担心它不适用于很多人.我有几个朋友测试我的应用程序,一切顺利(这是一个非常简单的应用程序).这是我的担忧:现在每个连接似乎都在使用websockets,这就是我想要的.但是,由于客户端的一些奇怪的东西,我的应用程序有时会降级为“轮询”吗?如果是这样,socket.io如何决定何时使用轮询以及何时使用websocket(它是基于浏览器/版本或连接还是什么)?我很确定它在可能的情况下使用websocket,但是有一个列表可以将其归结为“轮询”吗?此外,有没有办法我可以通过使用“轮询”来检查我的应用程序是否有效?

我可以发布代码,但我认为这是关于socket.io如何工作的一般问题.

解决方法

客户端降级到ajax轮询的唯一时间(假设您的服务器确实支持它)是浏览器客户端不支持webSockets(例如,非常老的客户端)或者客户端路径中的某些代理不支持支持webSockets.

IE10和其他浏览器的所有最新版本都支持webSockets.

所以,实际上,它实际上只是IE8或IE9或行为不当的代理,您可能看不到客户端webSocket支持.

没有其他条件(除了缺乏支持)将“连接”连接到轮询.

您可以通过仅在从客户端连接时传递xhr-polling传输选项来临时测试您的应用程序,以告知客户端这是唯一允许的传输选项.

请记住,所有webSocket连接都以http请求开始,然后如果双方同意,则将其“升级”为webSocket协议,如果您从浏览器查看网络跟踪,则应该看到每个webSocket连接都以http开头请求 – 这是正常的.并且,在最新版本的socket.io中,它实际上可能会在成功尝试并切换到实际的webSocket之前与轮询传输交换一些数据包.

大佬总结

以上是大佬教程为你收集整理的node.js – socket.io何时使用轮询而不是websockets?全部内容,希望文章能够帮你解决node.js – socket.io何时使用轮询而不是websockets?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。