XPCOM Socket正在关闭.如何保持活力?

Dou*_*eri 6 sockets firefox xpcom firefox-addon firefox-addon-sdk

我目前正在开发一个firefox附加组件,它是一个使用TCP套接字连接到服务器的客户端.

在我的小测试中一切正常,客户端(ff附加组件)连接到服务器(在java中设计)并发送消息,但之后firefox正在关闭套接字.

我知道我的代码在服务器端不是问题,因为我可以与其他客户端(用java和C++设计)连接,并且它们永远不会关闭连接.

我认为问题是firefox在没有引用它之后销毁套接字对象,因此关闭连接.

无论如何这里是我的代码:

const {Cc,Ci} = require("chrome");

var host="192.168.1.100";
var port=9001;
var transport = Components.classes["@mozilla.org/network/socket-transport-service;1"]
                          .getService(Components.interfaces.nsISocketTransportService)
                          .createTransport(null, 0, host, port, null);

var inputStream = transport.openInputStream(0, 0, 0);
var inputInterface = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream);
inputInterface.setInputStream(inputStream);

var outputStream = transport.openOutputStream(0, 0, 0);
var outputInterface = Components.classes["@mozilla.org/binaryoutputstream;1"].createInstance(Components.interfaces.nsIBinaryOutputStream);
outputInterface.setOutputStream(outputStream); 

var msg="some message";
outputInterface.writeUtf8Z(msg); 
Run Code Online (Sandbox Code Playgroud)

我正在使用firefox 7,我正在使用firefox附加组件SDK构建附加组件.

关于如何保持套接字存活的任何想法,以获得进一步的读数?

谢谢

Ale*_*das 0

您是否需要使用 [1] WebRTC构建新的实现,或者使用 [2] ctypes构建您自己的本机库。

[1] https://developer.mozilla.org/en-US/docs/Web/Guide/API/WebRTC

[2] https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes

XPCOMNPAPI很快就会被弃用。