1
我正在致力於通過Socket與java通信的firefox擴展。爲什麼nsIScriptableInputStream不起作用?
這裏是我的Java代碼
Socket clientSocket = new Socket("localhost", 8888);
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String messageToServer="Success" ;
out.write(messageToServer);
這裏是我的javascript
var reader = {
onInputStreamReady : function(input) {
var sin = Components.classes["@mozilla.org/scriptableinputstream;1"]
.createInstance(Ci.nsIScriptableInputStream);
sin.init(input);
var request = '';
try
{
while (true)
{
var chunk = sin.read(512);
alert(chunk.length);
if (chunk.length == 0)
break;
alert(chunk);
request=request+chunk;
}
alert("Received"+request);
}
catch (e)
{
alert("Error: failed reading from stream:\n" + e + "\n");
}
}
}
var listener = {
onSocketAccepted: function(serverSocket, transport) {
addSpan("Accepted connection on " + transport.host + ":" + transport.port);
var input = transport.openInputStream(0, 0, 0).QueryInterface(Ci.nsIAsyncInputStream);
var output = transport.openOutputStream(Ci.nsITransport.OPEN_BLOCKING, 0, 0);
var tm = Cc["@mozilla.org/thread-manager;1"].getService();
input.asyncWait(reader,0,0,tm.mainThread);
}
}
但JavaScript並沒有收到任何東西。我在link中看到同樣的問題。怎麼做才能做到這一點?