我正在尝试在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');
};
};

最佳答案

不幸的是,您无法轻松做到。

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

2)扩展应该会增强浏览器的功能,因此chrome API可能会有所帮助。不幸的是,对于扩展名,答案仍然是否。

3)但是,对于Chrome应用程序来说,这是可能的。有一个chrome.sockets.tcpServer API,但是当然没有捆绑的服务器实现。您将不得不自己实现一个Web + WS服务器,或者使用现有的解决方案之一,例如this one



除此之外,您确定您确实想要WS服务器吗?您说过要“监听开放式服务器”-服务器如何知道它们的存在?定期轮询它们是否打开是否更合乎逻辑?

关于javascript - 如何设置websocket服务器监听器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24070059/

10-14 17:16
查看更多