javascript - 需要的想法。 Javascript+XPCOM+C++插件

标签 javascript c++ firefox firefox-addon xpcom

因此,在 Firefox 中有一个 WebRTC,并且有一个方便的类可以使 RTC 通信成为可能,称为 RTCPeerConnection,可以从 JavaScript 应用程序实例化和使用它。你可以在 [1] 上找到一些不错的例子. 这是我的自定义传输(如果您有兴趣 - [2]),我想将其用于 RTC 通信。简而言之,我需要用我的自定义传输“替换”WebRTC 引擎的传输层,同时为用户提供相同的类似 RTCPeerConnection 的 JavaScript 接口(interface)。最好不要看起来像 Firefox 的自定义版本(无补丁)。 所以我想出了扩展的想法,它将用 C++ 编写(因为它需要与 WebRTC 库和我的自定义传输库链接),并以某种方式将其接口(interface)暴露给 Javascript。而且我找到了 XPCOM,正如我所想的那样,它可以为我提供这个。 所以我开始与关于这个主题的过时和稀疏的信息作斗争,经过 3 天的努力,我终于得到了构建的附加组件。不幸的是,由于 Javascript 的“Components.classes is undefined”错误,我无法从 Javascript 访问它。而且似乎根本没有办法访问它。还是我错了?

这是 Javascript:

function check()
{
console.debug("checking...");   

const {Cc,Ci,Cu} = require("chrome");
var rtc = Components.classes["@named-data.net/ndnrtc;1"].createInstance();
rtc = rtc.QueryInterface(Ci.ndINrtc);   

console.debug("rtc: "+rtc);
}

我的组件使用 XPCOM Viewer 可见 插件和上面的代码我可以在控制台中执行,而 空页面 在 Firefox 中打开。

考虑到所有这些,我想请教 Firefox 专家关于我可以采取哪些可能的方法来实现我的想法。 提前谢谢你

1 https://apprtc.appspot.com/

2 http://named-data.net

最佳答案

最后,我找到了一个可能的解决方案并在我的 post 中进行了描述

关于javascript - 需要的想法。 Javascript+XPCOM+C++插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17955147/

相关文章:

javascript - AsyncFileUpload 在 AjaxControlToolkit 中有逻辑错误,当组件在不同的选项卡中时,因此不显示

c++ - 返回链表中值的总和

javascript - 平滑滚动不适用于 overflow-y

c++ - 无法将 <int*, std::vector<int>>’ 转换为 ‘int*'

c++ - 指向指针的 const 问题

javascript - 为什么 babel-standalone@6 在 Firefox 20 中不起作用?

css - 性能问题 : large background images in Firefox

jquery - ScrollLeft() 不适用于 Firefox

javascript - 使用 jQuery .each() 时的全局变量与局部变量

javascript - JavaScript 可以删除所有的工具栏、地址栏和窗口的设置大小吗?