2012-10-31 85 views

回答

1

WebSockets不仅仅是一个简单的TCP套接字。该协议基本上是一个HTTP升级握手(与一些WebSockets特定的安全握手撒在)。

如果您只是在端口上侦听并盲目转发数据,它将无法工作,因为浏览器实际上无法建立WebSocket连接。

你有没有考虑用socket.io来处理WebSocket结束的事情?

然后,它很简单,只需使用dgram通过UDP发送数据:

io.sockets.on('connection', function (socket) { 
    socket.on('sendudp', function (data) { 
    var buf = new Buffer(data), udp = dgram.createSocket("udp4"); 

    udp.send(buf, 0, buf.length, 41234, "localhost", function(err, bytes) { 
     udp.close(); 
    }); 
    }); 
}); 

显然与期望的目标端口和主机更换41234localhost

1

没有'TCP数据包'这样的东西,因此没有办法接收一个。 TCP提供了一个字节流。无论您的UDP接收器期望的数据报是否与通过TCP流接收到的数据报相对应,只有您可以知道,但您需要知道这是非常有问题的。