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

时间:2013-07-30 18:57:36

标签: javascript c++ firefox firefox-addon xpcom

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

这是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

1 个答案:

答案 0 :(得分:2)

最后,我找到了一个可能的解决方案并在我的post

中进行描述