我正在尝试在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/