当前位置:  开发笔记 > 编程语言 > 正文

是否可以将UDP与socket.io一起使用?

如何解决《是否可以将UDP与socket.io一起使用?》经验,为你挑选了1个好方法。

我有一个正在研究的游戏,我听说UDP对于实时游戏来说是优越的.我知道socket.io使用TCP,并想知道是否有某种方法将其切换到UDP.我试过查找它,但只发现了2012年左右的帖子,其中说UDP只是在浏览器中实验性的.



1> jfriend00..:

从标准浏览器来看,这是不可能的.

从浏览器客户端,socket.io使用httpwebSocket传输.这两个httpwebSocket是TCP连接,而不是UDP连接.所以浏览器客户端socket.io不使用UDP - 它使用TCP.

据我所知,在常规HTML页面Javascript中可以访问的浏览器中没有标准的UDP支持,因此您甚至无法真正尝试构建自己的使用UDP的层.

关于该主题的其他参考:

为什么我不能从浏览器发送UDP数据包

从浏览器中的udp端口读取

Chrome支持TCP和UDP套接字

编写chrome扩展以支持浏览器中的UDP

如何使用Web RTC发送UDP数据包 - Javascript?

如何使用HTML5与UDP套接字通信?

从浏览器中的udp端口读取

当您希望尽快传递数据包时,UDP可能是某种情况下的理想传输,但如果无法立即传递,则只需删除它即可.这有时在游戏甚至视频流中很有用,其中下一个数据包只包含下一个更新,所以如果前一个数据包没有通过,那么没什么大不了的,你宁愿不让TCP尝试重新传输丢失的数据包.但是,浏览器不支持从网页Javascript使用UDP协议.

如果要从浏览器连接到UDP设备或服务器,则必须使用某种代理,以便浏览器代码可以通过TCP(http或webSocket)与代理通信,然后代理可以处理实际的UDP与设备通信.


可以使用来自node.js或其他一些非浏览器平台的socket.io库,并为您的平台中的本机UDP支持构建的socket.io编写自己的UDP传输加载项.我相信socket.io有一个可插拔的传输,所以你可以尝试自己的传输,然后配置客户端和服务器使用该传输.这在浏览器中是不可能的,因为浏览器中没有可以构建传输的基础UDP支持,但是在非浏览器环境(如node.js)中,您可以这样做.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有