Firefox 拡張機能でリモート サーバー (ポート 9442 でリッスン) に接続する必要があります。私は使用していますが、私の問題はイベントnsISocketTransportService
をリッスンする方法ですか? dataAvailable
mozilla のドキュメントを検索しましたが、何か役に立つものを見つけることができました。私の質問は、を使用してリモートサーバーに接続するときにデータをリッスンするにはどうすればよいnsISocketTransportService.createTransport()
ですか? リモート TCP サーバーに接続する他の方法はありますか?
var socket = Components.classes["@mozilla.org/network/socket-transport-service;1"]
.getService(Components.interfaces.nsISocketTransportService)
.createTransport(null, 0, host, port, null);
var poolOutputStream = socket.openOutputStream(0, 0, 0);
var helloMessage = JSON.stringify({type: 'hello', clientID: currentClientID});
poolOutputStream.write(helloMessage, helloMessage.length);
var poolRawInputStream = socket.openInputStream(0, 0, 0);
var poolInputStream = Components.classes ["@mozilla.org/scriptableinputstream;1"]
.createInstance(Components.interfaces.nsIScriptableInputStream)
.init(poolRawInputStream);