我希望获得UPnP设备发现,在Javascript中完成描述 - 无论是在独立浏览器环境中还是在NodeJS中 为此,我尝试了两种解决方案,但两种方法都不适用于我。详情 -
1] NodeJS基地: https://www.npmjs.com/package/upnp-client 在示例应用程序中更正了几个拼写错误,并在节点中运行它(我的nodeJS在Virtualbox内的X-Ubuntu虚拟机下运行) 我在运行upnp-client示例应用程序时遇到以下错误
dgram.js:399 抛出新的errnoException(process._errno,' addMembership'); ^ 错误:addMembership EBADF 在新的errnoException(dgram.js:457:11)
NodeJS版本:v0.10.25 upnp client api:0.0.1
2]在浏览器下(Chrome / IE) https://www.npmjs.com/package/upnp-client 在我支持navigator.getNetworkServices API的版本中,它们都没有,这似乎是这个库所需要的
如何在Javascript中使用UPnP设备发现?
解决上述错误/解决方法的任何其他解决方案或指示。
答案 0 :(得分:2)
UPnP uses TCP/UDP packages for advertisement/discovery/etc.自browsers cannot open network sockets以来,简短的回答是:不。我们目前无法在浏览器中使用UPnP 。
唯一的希望是Network Service Discovery,它在大多数浏览器中仍处于开发阶段。例如,在Chrome中,您可以使用chrome://flags/#enable-experimental-web-platform-features
启用它,然后就可以执行此类操作(来自W3C草稿):
function showServices( services ) {
// Show a list of all the services provided to the web page
for(var i = 0, l = services.length; i < l; i++) console.log( services[i].name );
}
navigator.getNetworkServices('zeroconf:_boxee-jsonrpc._tcp').then(showServices);