所以我有一个摄像头输出我的本地网络上的UDP组播流,我知道这是否正常工作,因为我可以连接到通过MRL“UDP通过VLC Media Player中的流:// @ {multicast_addr}:{port}。Node.js的多播客户端
我想编写一个NodeJS客户端,它至少会确认它正在接收这些udp数据包,但我似乎无法正确地完成这项工作。我至今
// Working MRL in VLC: udp://@{multicast_addr}:{port}
var PORT = {port};
var HOST = '{local_addr}';
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(64);
client.addMembership('{multicast_addr}', HOST);
});
client.on('message', function (message, remote) {
console.log("Packet received")
});
client.bind(PORT, HOST);
当我运行它,我得到的消息“UDP客户端侦听{} LOCAL_ADDR:(港口)。”但当时没有“收到的包”的消息谁能告诉米我做错了什么?我误解了udp多播流的工作原理吗?
谢谢任何能够帮助的人。
编辑:
好了,所以我得到它的工作,但我不知道怎么样。在最后一行,不是绑定(PORT,HOST),而是绑定(PORT,{multicast_addr})。在运行它时,我的控制台充斥着“收到数据包”消息,现在我比以前更加困惑。
如果有人会关心解释,我将非常感激。