【发布时间】:2015-04-04 06:22:23
【问题描述】:
我正在尝试创建一个使用 TcpSocket 进行通信的 Firefox 插件。我已使用以下代码通过 tcp 成功发送消息:
var tcpSocket = Cc["@mozilla.org/tcp-socket;1"].createInstance(Ci.nsIDOMTCPSocket);
var socket = tcpSocket.open("127.0.0.1", 3000);
socket.onopen = function() {
socket.send(sendText);
}
效果很好。
现在,我想接收 tcp 消息,而不是发送。我正在使用以下代码(基于MDN's TCP Socket article)
var tcpSocket = Cc["@mozilla.org/tcp-socket;1"].createInstance(Ci.nsIDOMTCPSocket);
var socket = tcpSocket.listen(3000);
socket.ondata = function (event) {
console.log(event);
};
但它会记录以下错误(在运行 cfx run 的 cmd 中):
console.error: my-addon:
Object
- message = Cannot modify properties of a WrappedNative
- fileName = undefined
- lineNumber = 6
...
而且,我可以说端口至少是活动的,因为如果我忽略错误并尝试向该端口发送 tcp 消息,控制台会记录以下内容:
Received unexpected connection!
我在这里遗漏了什么吗?提前致谢。
【问题讨论】:
-
很酷的东西,这可以实现浏览器进程和另一个进程之间的跨进程通信吧?
-
@Noitidart - 是的......我正在构建它以用于扩展和 C# 应用程序之间的交互......
-
很酷的东西,你可能会发现 js-ctypes 也是一个选项 :)
-
我正在尝试在一个 firefox 配置文件和另一个配置文件之间发送消息,所以如果我们知道这对我也有帮助:)
-
@LcSalazar 你好,我在上面使用了你的发送代码,但它不起作用(连接工作)..但你说“效果很好。” .我问了question plz,如果你能帮助我。
标签: sockets firefox tcp firefox-addon tcplistener