【发布时间】:2017-03-11 11:15:29
【问题描述】:
我有一个用 node.js 编写的 UDP dgram 套接字服务器。 这是来自 server.js 的代码 sn-p
var PORT = 50000;
var HOST = '0.0.0.0';
var dgram = require('dgram');
var server = dgram.createSocket('udp4');
server.on('listening', function () {
var address = server.address();
console.log('UDP Server listening on ' + address.address + ":" +
address.port);
});
server.on('message', function (message, remote) {
console.log('Message', message);
});
server.bind(PORT, HOST);
我有一个可以连接到这个服务器的客户端。 这是 client.js 文件:
var PORT = 50000;
var HOST = '0.0.0.0';
var dgram = require('dgram');
var message = null;
var client = dgram.createSocket('udp4');
client.on('listening', function () {
var address = client.address();
console.log('UDP Server listening on ' + address.address + ":" +
address.port);
});
client.on('message', function (message, remote) {
console.log("got message from server ==> ",remote.address + ':' +
remote.port +' - ' + message);
});
function sendMessage(message) {
if (message) {
client.send(message, 0, message.length, PORT, HOST, function (err,
bytes) {
if (err) throw err;
console.log('UDP message sent to ' + HOST + ':' + PORT);
// client.close();
});
}
}
到这里为止...一切都很好.. 我需要的是:
我需要把这个客户端代码放到一个html或jade页面中......这样我就可以使用浏览器连接到服务器。我无法更改服务器代码:(
【问题讨论】:
-
(简答:你不能。)
-
@JoeClay: 没有办法解决......任何可以写的包装器......
-
不,浏览器不能直接进行 UDP 通信。 WebRTC 是一个基于 UDP 的 API, 在浏览器中可用,但您必须重写服务器代码才能支持它。
-
@JoeClay:感谢您的澄清:)
标签: javascript html node.js sockets udp