もじら組の記事にあるとおり、Necko にサーバー側ソケットのコードが入ったとのこと。新しもの好きですから、ちょこちょこいじってます。
C++で書かれたサンプルソースをJavaScriptに書き換えただけです。ちょっとすっ飛ばしたところがあったり、エラー処理を省いているところがありますのでご了承を。
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<window
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="server" id="mainwindow">
<script>
<![CDATA[
var serverSocketListener={
onSocketAccepted : function(aServ,aTransport){
var input;
var output;
input = aTransport.openInputStream(1, 0, 0);
output = aTransport.openOutputStream(1, 0, 0);
const response = "HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\n\r\nFooooopy!!\r\n";
rv = output.write(response, response.length);
input.close();
output.close();
return true;
},
onStopListening:function(aServ,aTransport){
return true;
}
}
var serverSocket;
function makeServer(){
var rv;
serverSocket=Components.classes["@mozilla.org/network/server-socket;1"]
.createInstance(Components.interfaces.nsIServerSocket);
rv=serverSocket.init(60053,true,5);//第一引数はポート番号
rv=serverSocket.asyncListen(serverSocketListener);
}
]]>
</script>
<button onclick="makeServer();" label="start"/>
<button onclick="serverSocket.close();" label="stop"/>
</window>