【问题标题】:UPnP discovery, description inside JavascriptUPnP 发现,Javascript 中的描述
【发布时间】:2015-03-24 07:56:53
【问题描述】:

我正在寻找 UPnP 设备发现,用 Javascript 完成描述 - 无论是在独立浏览器环境中还是在 NodeJS 中 为此,我尝试了以下两种解决方案,但都对我不起作用。详情 -

1]NodeJS 基础: https://www.npmjs.com/package/upnp-client 更正示例应用程序中的一些错字后,并在节点中运行它(我的 nodeJS 在 Virtualbox 内的 X-Ubuntu 虚拟机下运行) 我在运行 upnp-client 示例应用程序时遇到以下错误

dgram.js:399 throw new errnoException(process._errno, 'addMembership'); ^ 错误:addMembership EBADF 在新的 errnoException (dgram.js:457:11)

NodeJS 版本:v0.10.25 Upnp 客户端接口:0.0.1

2]在浏览器下(Chrome/IE) https://www.npmjs.com/package/upnp-client 在我支持 navigator.getNetworkServices API 的版本中,它们都没有,这似乎是这个库所需要的

如何让 UPnP 设备发现在 Javascript 中工作?

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

【问题讨论】:

  • ChromeFirefox 都提供用于扩展的套接字 API。您可以检查是否存在作为扩展实现的现有 UPnP 客户端。

标签: javascript node.js upnp


【解决方案1】:

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

【讨论】:

  • 在 chrome 中仍然无法使用。如果是这样就太好了。
猜你喜欢
  • 1970-01-01
  • 2011-06-21
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-11
  • 2016-02-26
  • 2013-09-05
相关资源
最近更新 更多