问题描述
websocket连接失败后多久会触发error事件?这个时间有没有方法可以设置
问题出现的环境背景
最近项目中用到了websocket,但是连接地址的端口不确定,因此前端需要从某个端口(例如ws://127.0.0.1:9000)开始累加去建立连接,然后通过onerror事件判断连接是否成功,但运行时发现从尝试连接到连接失败触发error事件的时间比较久,大概需要1s。这样如果枚举100次才连接成功,就需要占用100s的时间,效率太慢不可行。function connectWebSocket(port = 9900) {
return new Promise((resolve, reject) => {
if (ws && ws.readyState === WebSocket.OPEN) {
resolve(ws)
} else {
// 尝试建立连接
console.log('connect', '-------', Date.now())
ws = new WS(`ws://127.0.0.1:${port.toString()}`)
ws.onopen = () => {
// 连接成功
console.log('open', '-------', Date.now())
resolve(ws)
}
// 连接失败触发回调
ws.onerror = () => {