Node.js 将dgram(UDP)与Socket.IO一起使用时,数据报的发送速度是多少?(节点)
我使用socket.io和dgram节点库通过节点将UDP消息从一个程序发送到浏览器Node.js 将dgram(UDP)与Socket.IO一起使用时,数据报的发送速度是多少?(节点),node.js,websocket,udp,socket.io,Node.js,Websocket,Udp,Socket.io,我使用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 (sock
代码看起来就像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);
});
});
我的问题是数据报最终以什么速度发送到浏览器?它们是以TCP速度、web套接字速度(据我所知较慢)还是UDP速度(就实时通信而言,我所知较快)发送的
此外,在本例中,io始终在端口80上侦听(意味着它只能以http/tcp速度接收内容),或者它只是侦听以建立套接字连接,然后可以停止侦听(并让套接字连接接管)UDP、tcp和WebSockets“数据包”的速度相同(例如,网速),但它们在开销和可靠性方面有所不同
- WebSocket是现有HTTP连接中的一个隧道,因此实际上TCP具有更大的开销。但是他们使用现有的方式通过NAT路由器和防火墙进行隧道传输李>
- TCP具有可靠性保证,例如没有数据包丢失和重复。TCP需要一个初始的三方握手,但这对于一个连接是一次,而不是每个数据块李>
- UDP是火和遗忘,如果需要的话,您需要在上面实现您自己的可靠性。除此之外,我不确定浏览器是否会在本地接受您的UDP数据包,至少在RTP上下文之外(例如WebRTC)。它可能与Java和Flash一起工作