我目前正在开发一个firefox附加组件,它是一个使用TCP套接字连接到服务器的客户端。
在我的小测试中一切正常,客户端(ff add-on)连接到服务器(用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);
我正在使用firefox 7,而且我正在使用firefox附加组件SDK构建附加组件。
关于如何保持套接字存活的任何想法,以获得进一步的读数?
由于
答案 0 :(得分: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
XPCOM 和 NPAPI 很快就会弃用。