Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用不同地址成功建立连接后,防止SocketIO重新连接_Javascript_Socket.io - Fatal编程技术网

Javascript 使用不同地址成功建立连接后,防止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

我正在为SocketIO测试构建一些小工具。用户需要做的第一件事是提供一个要连接的地址

用户提交地址后,将启动此函数:

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;
这应该绝对有效