【发布时间】:2014-12-01 22:30:54
【问题描述】:
我目前正在尝试检测 IP 范围内的本地网络 websocket 服务器(我编写的)。我有一个在网络上运行,我希望我的脚本能够检测到它(以及其他在同一端口上)。
目前,我可以使用 for 循环来完成此操作,并根据我是否可以成功连接到该 IP 上的服务器来尝试创建一个列表。然而,这是非常缓慢和低效的。任何想法如何快速有效地做到这一点?
我的代码的 sn-p:
var port = 1234;
var ip_range = "192.168.1.";
var servers = [];
var i = 0;
function findServers() {
if ( i > 255 ) {
return;
}
try {
var host = "ws://"+ip_range+i+":"+port;
var socket = new WebSocket(host);
socket.onopen = function(){
console.log("Success: " + socket.url);
servers.push(socket.url);
i++;
findServers();
};
socket.onerror = function(error){
console.log("Error: " + socket.url);
i++;
findServers();
};
} catch (e) {
console.log("Error: " + socket.url);
i++;
findServers();
}
}
如果有帮助,我编写了套接字服务器,以便在需要时修改代码。
【问题讨论】:
标签: javascript websocket