Javascript 使用不同地址成功建立连接后,防止SocketIO重新连接
我正在为SocketIO测试构建一些小工具。用户需要做的第一件事是提供一个要连接的地址 用户提交地址后,将启动此函数:Javascript 使用不同地址成功建立连接后,防止SocketIO重新连接,javascript,socket.io,Javascript,Socket.io,我正在为SocketIO测试构建一些小工具。用户需要做的第一件事是提供一个要连接的地址 用户提交地址后,将启动此函数: connect = (address) => { socket = io(address); socket.on('connect', () => { console.log('connected!') }); socket.on('connect_error', (error) => { cons
connect = (address) => {
socket = io(address);
socket.on('connect', () => {
console.log('connected!')
});
socket.on('connect_error', (error) => {
console.log('Error connecting!')
});
}
请注意,“socket”是一个全局变量
如果用户提供的地址无效,问题就会出现。SocketIO将继续重新连接,即使使用不同的地址成功建立了连接,也不会停止连接(如果用户更正地址并提交)
即使变量“socket”被分配了一个新实例,但旧实例仍会以某种方式保留在后台,执行其重新连接尝试
如何手动防止重新连接,或完全“销毁”旧实例 在重新分配“旧”实例之前,您可以:
connect=(地址)=>{
中频(插座){
socket.disconnect();//{
console.log('connected!')
});
socket.on('connect_error',(error)=>{
console.log('连接错误!')
});
}
只需确保变量socket
在调用此函数之前已初始化,例如:
const socket=null;
这应该绝对有效