4

我正在尋找一種方法來傳入請求到瀏覽器。在瀏覽器中安裝擴展即可。這樣做的目標是允許另一臺機器連接到擴展程序來控制遊戲,而不需要中間服務器。是否可以創建瀏覽器擴展來允許傳入請求?

這可行嗎?是否可以讓Chrome或Firefox擴展程序打開端口以允許傳入請求?

回答

2

你要求的是服務器插座。對於Chrome,答案是「否」,Chrome擴展程序只能打開客戶端連接。另一方面,Firefox擴展可以使用nsIServerSocket interface偵聽端口上的傳入TCP連接。如果您使用Add-on SDK,則需要使用chrome package。類似這樣的:

var {Cc, Ci} = require("chrome"); 
var socket = Cc["@mozilla.org/network/server-socket;1"] 
       .createInstance(Ci.nsIServerSocket); 
socket.init(12345, false, -1); 
socket.asyncListen({ 
    onSocketAccepted: function(socket, transport) 
    { 
    ... 
    }, 
    onStopListening: function(socket, status) 
    { 
    } 
}); 
相關問題