gpt4 book ai didi

sockets - 在 Firefox 附加组件中打开套接字连接

转载 作者:行者123 更新时间:2023-12-02 10:47:54 25 4
gpt4 key购买 nike

我想从 JavaScript 中的 Firefox 插件中打开套接字连接(传出,而不是监听 nsIServerSocket)。连接应该是 TCP 到指定端口上的本地主机,并将用于与计算机上运行的另一个进程进行通信。

如何打开这样的客户端套接字?我在developer.mozilla.org 上找到了像nsISocketTransport 这样的接口(interface)的API 文档,但这仍然无法帮助我将各个部分组合在一起。它甚至没有提到套​​接字可以用于 TCP,所以我什至不能 100% 确定这是我需要的接口(interface)。到目前为止我能找到的只是有关 nsIServerSocket 的更多信息。注意:我没有使用附加 SDK,而是直接使用引导附加组件。

最佳答案

你走在正确的道路上。我在 KeeFox 中使用 nsISocketTransport 和 nsISocketTransportService 来启用跨进程通信,但完整的图片是相关的监听器和回调接口(interface)。

此文件应包含一些有用的示例代码:https://github.com/luckyrat/KeeFox/blob/master/Firefox%20addon/KeeFox/modules/session.js

它在特定端口上打开安全 TCP 连接,定期尝试连接到服务器端口并处理因使用自签名证书而出现的安全异常。

我使用以下接口(interface),但根据具体情况,您可能需要略有不同的接口(interface):

QueryInterface: XPCOMUtils.generateQI([Ci.nsIBadCertListener2,
Ci.nsIInterfaceRequestor,
Ci.nsIStreamListener,
Ci.nsITransportEventSink,
Ci.nsIOutputStreamCallback])

这些接口(interface)上定义的一些回调包含在第二个文件中,该文件扩展了基本 session 对象原型(prototype)以应用 KeeFox 使用的特定通信协议(protocol)(JSON-RPC):

https://github.com/luckyrat/KeeFox/blob/master/Firefox%20addon/KeeFox/modules/json.js

https://github.com/luckyrat/KeeFox/blob/master/Firefox%20addon/KeeFox/modules/KF.js创建一些计时器并使用下面的代码启动连接过程,但您可能不需要详细研究该文件。

this.KeePassRPC = new jsonrpcClient(); // defined in json.js and session.js

// make the initial connection to KeePassRPC
// (fails silently if KeePassRPC is not reachable)
this.KeePassRPC.connect();

// start regular attempts to reconnect to KeePassRPC
this.KeePassRPC.reconnectSoon();

出于兴趣,您是否必须使用原始 TCP 连接?这是 4 年前我创建 KeeFox 时唯一的选择,但我目前正在开发 Web Socket 解决方案,因此如果您还没有考虑过该选项,那么可能也值得考虑。这肯定比了解原始套接字接口(interface)要简单得多。

关于sockets - 在 Firefox 附加组件中打开套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17351922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com