TabrisJs 使用 Upnp

TabrisJs working with Upnp

Upnp 在 TabrisJs 中看起来更难使用。
它在很大程度上支持节点包,但我发现使用 Upnp 很困难。

在 package.json 我得到了 node-upnp-client

"dependencies": {
    "tabris": "^2.0.0-rc2",
    "moment": "~2.8.4",
    "moment-timezone": "~0.2.5",
    "android-versions": "1.1.0", 
    "node-mind": "1.0.1",
    "node-ssdp": "3.2.1",
    "node-upnp-client" : "0.0.2",
    "node-ssdp-lite": "0.2.0"
  },

在app js中我已经将它初始化为

const upnpClient = require('node-upnp-client');
const cli = new upnpClient();
console.log(cli.searchDevices());

我得到

Could not load main module: 
Reference error: process is not defined

现在它首先指向这一行 var path = process.env.SSDP_COV ? './lib-cov/' : './lib/',在 node-ssdp/index.js^

我不知道为什么,但它在 CLI 中运行良好,但在应用程序中运行不正常。

单独要求 node-ssdp 表示无法加载 dgram,即使它是 part of Node

而且我不确定 dgram 包是否单独提供。

如何纠正这些错误并在 tabrisJs 中获得 Upnp 支持?

Tabris.js 使用 Node.js 兼容模块系统允许在您的应用程序中使用托管在 npm 上的模块。但是,它没有实现大部分 Node.js APIs.

一些基本的 API,例如 Timer and Console are available. In addition to that, a small subset of the Node APIs is supported by the tabris-js-node module。不幸的是,Node.js 的网络 API(dgram 是其中之一)没有在 Tabris.js 中实现。

这排除了基于这些 API 构建的 npm 插件。您必须在 Tabris API 之上实现此功能,例如 fetch or websockets.