需要想法.Javascript+XPCOM+C++插件

Ideas needed. Javascript+XPCOM+C++ add-on

本文关键字:Javascript+XPCOM+C++ 插件      更新时间:2023-09-26

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

这是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中打开时,I上面的代码可以在控制台中执行

考虑到这一切,我想请教Firefox专家,我可以采取哪些可行的方法来实现我的想法。提前感谢

1https://apprtc.appspot.com/

2http://named-data.net

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

中描述了它