在Chrome应用中重用UDP套接字的地址

时间:2014-05-17 19:38:52

标签: javascript sockets google-chrome google-chrome-extension google-chrome-app

我正在开发基于UDP多播构建的现有网络库的Chrome实施。希望彼此通信的客户端绑定到相同的多播地址和端口。为了避免地址冲突,库实现设置了"重用地址"套接字上的选项,因为它们已经创建。例如,Java实现包括如下所示的内容:

...
MulticastSocket socket = new MulticastSocket(port);
socket.setReuseAddress(true);
socket.joinGroup(address);
...

不幸的是,chrome.sockets.udp API似乎没有相应的选项。这意味着如果我在本地计算机上的另一个进程中运行网络库(一个相对常见的用例),我在尝试绑定Chrome应用程序中的套接字时会出错。来自chrome.sockets.udp.bind的回调给我的错误代码为-147

我简要介绍了Native Client,但发现了一些信息,表明它doesn't yet support UDP multicast

有没有办法在Chrome应用程序中重用UDP多播地址?或者其他浏览器可能提供该功能吗?

1 个答案:

答案 0 :(得分:5)

我担心Chrome会被分配known feature request但是半年没有进展。截至目前,API中确实没有相应的选项。

您可以使用Native Messaging Host绕过所有这一切,但根据您希望部署应用/扩展程序的方式,它可能会非常笨重。

This可能是Firefox的相关(也是未完成)功能请求。