UPnP发现,Javascript里面的描述

时间:2015-03-24 07:56:53

标签: javascript node.js upnp

我希望获得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设备发现?

解决上述错误/解决方法的任何其他解决方案或指示。

1 个答案:

答案 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);