在Socket.IO中使用dgram(UDP)时,数据报发送的速度是多less? (节点)

我使用socket.io和dgram节点库从一个程序通过节点发送UDP消息到浏览器。
代码看起来就像socket.io示例

var dgram = require("dgram"); var dServer = dgram.createSocket("udp4"); dServer.bind(12345, '0.0.0.0'); var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { dServer.on("message", function (msg) { socket.send('message', msg); }); }); 

我的问题是数据报最终被发送到浏览器的速度是多less? 它们是以TCP速度,networking套接字速度(我知道速度较慢)还是UDP速度(我知道在实时通信中速度更快)发送的。

另外,在这个例子中,io在端口80上永久监听(意味着它只能以http / tcp速度接收内容),还是只是监听build立套接字连接,然后停止监听(并让套接字连接接pipe)

       

网上收集的解决方案 "在Socket.IO中使用dgram(UDP)时,数据报发送的速度是多less? (节点)"

UDP,TCP和WebSocket“数据包”的速度是相同的(例如线速),但是它们的开销和可靠性不同。

  • WebSockets是现有HTTP连接中的一个隧道,所以TCP有更多的开销。 但是他们使用现有的方式通过NAT路由器和防火墙进行隧道传输。
  • TCP具有可靠性保证,例如没有丢包,没有重复。 TCP需要一个初始的三次握手,但这只是一次连接而不是每个数据块。
  • UDP是火,忘了,如果你需要,你需要在自己的顶部实现自己的可靠性。 除此之外,我不确定浏览器是否会本地接受你的UDP数据包,至less在RTP上下文之外(例如WebRTC)。 它可能适用于Java和Flash。