4
我需要連接到我的Firefox擴展中的遠程服務器(監聽端口9442)。我正在使用nsISocketTransportService
,我的問題是如何收聽dataAvailable
事件?我搜索mozilla文檔,但可以找到有用的東西。我的問題是,當我使用nsISocketTransportService.createTransport()
連接到遠程服務器時,如何監聽數據?有沒有其他方式連接到遠程TCP服務器?如何使用Firefox擴展中的nsISocketTransportService連接到遠程服務器?
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);
'nsIInputStreamPump'是正是我需要的,我會盡快測試你的代碼,並回來的結果。謝謝弗拉基米爾 – 2012-04-17 13:17:08