我正在尝试在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');
};
};
答案 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侦听方式,或提供服务器套接字。