我正在运行here中的两个应用。所以我们有一个客户:
var PORT = 5007 ;
var dgram = require('dgram');
var client = dgram.createSocket('udp4');
client.on('listening', function () {
var address = client.address();
console.log('UDP Client listening on ' + address.address + ":" + address.port);
client.setBroadcast(true)
client.setMulticastTTL(128);
client.addMembership('224.1.1.1');
});
client.on('message', function (message, remote) {
console.log('A: Epic Command Received. Preparing Relay.');
console.log('B: From: ' + remote.address + ':' + remote.port +' - ' + message);
});
client.bind(PORT);
和服务器:
var PORT = 5007 ;
var dgram = require('dgram');
var client = dgram.createSocket('udp4');
client.on('listening', function () {
var address = client.address();
console.log('UDP Client listening on ' + address.address + ":" + address.port);
client.setBroadcast(true)
client.setMulticastTTL(128);
client.addMembership('224.1.1.1');
});
client.on('message', function (message, remote) {
console.log('A: Epic Command Received. Preparing Relay.');
console.log('B: From: ' + remote.address + ':' + remote.port +' - ' + message);
});
client.bind(PORT);
它工作得很好,当我在两个独立控制台中运行它时 - 我看到传输正在进行,并且消息出现在两个站点上。现在,如何将所有这些数据显示/传输到任何网页? 谢谢!
答案 0 :(得分:1)
如果您希望它是实时的或根据请求提供,它取决于它与类型的数据组合。
如果您希望根据请求提供服务,则必须将数据存储在某个位置,以便稍后访问。在文件系统上或类似MongoDB's GridFS之类的东西,或直接在数据库中(正如我所说,取决于它是什么类型的数据)
如果您希望将其实时流式传输到已连接的网络客户端,则必须使用Socket.io或WebRTC之类的内容。两者之间的差异很大。 Socket.io很容易使用,但需要一个中间人服务器,而WebRTC(Web实时通信)在浏览器中是直接对等的,并且更难以使用。 WebRTC是相当新的,在旧的浏览器版本中不可用,所以我建议在这种情况下使用Socket.io或类似的。
希望您能更好地了解您的可能性。无论哪种方式,您都需要捕获两个客户端之间的数据(如客户端 - 服务器示例中所示)