如何设置websocket服务器监听器?

时间:2014-06-05 20:52:08

标签: javascript google-chrome-extension websocket listener

我正在尝试在chrome扩展中创建一个websocket客户端来监听打开的websocket服务器。一旦打开,它将连接并执行其任务。如何设置它以便客户端在断开连接后立即开始收听?

这是我必须连接的代码,但我不知道如何将它变成一个监听器。

function connect(host) {
    var ws = new WebSocket(host);

    ws.onopen = function () {
        alert('connected');
        connection = true;
    };

ws.onmessage = function (evt, tab) {  
    if(evt.data == "connect"){
        rpwd = 'hello ws';
        ports[curTabID].postMessage({text: rpwd});
}
};

ws.onclose = function () {
    alert('socket closed');
    connection = false;
    webConnect('ws://localhost:8080');
};
};

2 个答案:

答案 0 :(得分:1)

不幸的是,你不能轻易做到。

1)标准API WebSocket只是一个客户端,您无能为力。浏览器不应该是服务器。

2)扩展应该增强浏览器功能,因此chrome API可能会有所帮助。不幸的是,在扩展的情况下,答案仍然没有。

3)但是,对于Chrome 应用 是可能的。有一个chrome.sockets.tcpServer API,但当然没有捆绑的服务器实现。您必须自己实现web + ws服务器,或者使用现有的解决方案,如this one


除此之外,你确定你真的想要一个WS服务器吗?你说它是“听取开放式服务器” - 服务器如何让他们知道?定期轮询它们以确定它们是否开放是不是更合乎逻辑?

答案 1 :(得分:0)

看起来浏览器无法使用WebSockets监听连接。我读过的所有内容,包括socket.io的文档都指向node.js是唯一的JavaScript侦听方式,或提供服务器套接字。