gpt4 book ai didi

javascript - chrome.sockets.udp 多播的示例/说明

转载 作者:行者123 更新时间:2023-12-03 11:55:28 26 4
gpt4 key购买 nike

我正在制作一个具有“聊天”功能的 Chrome 应用程序(如 this app 所具有的)。当用户加入聊天(通过连接到端口)时,用户将收到在他/她的 session 期间创建的所有消息。然而,虽然我了解大部分 the app's code ,我无法理解代码的多播部分究竟是如何工作的。

据我了解,应该是这样的:

var socket = 0;
chrome.sockets.udp.create({bufferSize: 1024 * 1024}, function (createInfo) //Create socket entry
{
socket = createInfo.socketId;
console.log(socket); //This works - tells me an integer
var ttl = 12;
chrome.sockets.udp.setMulticastTimeToLive(socket, ttl, function (result)
{
if(result < 0)
{
console.log("MULTICAST FAILED" + result);
}
else
{
chrome.sockets.udp.bind(socket, "0.0.0.0", 8080, function(result) //Bind to socket
{
if(result < 0)
{
console.log("BIND FAILED" + result);
chrome.sockets.udp.close(socket);
}
else
{
chrome.sockets.udp.joinGroup(socket, "237.132.123.123", function(result) //join Multicast group
{
if(result < 0)
{
console.log("Couldn't join Group!");
chrome.sockets.udp.close(socket);
}
else
{
console.log("GOT HERE"); //Outputs this

chrome.sockets.udp.onReceive.addListener(function(msg) //Listen for receiving messages
{
console.log(msg.socketId);
})
chrome.sockets.udp.onReceiveError.addListener(function(error) //If error while receiving, do this
{
console.log(error.socketId + " " + error.resultCode);
});
}
})
}
});


}
})


})
//Later in the code (linked to a button I press (and when app closes)
chrome.sockets.udp.close(socket);

这样做的问题是,虽然代码到达了 .send() 的回调函数(这应该意味着它发送成功),但我在绑定(bind)时也遇到错误,说套接字不存在(尽管我创建了它和套接字number 输出一个整数)。当我使用与上述相同的代码制作两个应用程序并尝试让它们相互收听/发送时,都没有收到消息。

有人可以提供一个清晰的示例(没有 gui 代码,没有运行时消息传递)来说明如何使用较新的 chrome.sockets.udp 正确进行多播吗?

最佳答案

只需要处理这个问题,如果您将其包含在 list 中,您的代码应该可以工作:

"sockets": {
"udp": {
"send": ["*"],
"bind": ["*"],
"multicastMembership": [""]
}
}

如果您已经这样做了,请尝试更改您的端口/地址,以防您的网络已经在使用它们。如果这仍然不起作用,请尝试删除 create() 上的选项并查看是否发生任何事情。

对不起,如果我来晚了。

关于javascript - chrome.sockets.udp 多播的示例/说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33990159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com