socket.io 客户端中的“重新连接”和“forceNew”有什么区别?

Xin*_*Xin 3 node.js socket.io

reconnection在socket.io客户端选项中,“ ”和“ forceNew”有什么区别

socket("my-host-server", {
    reconnection: true,
    reconnectionDelay: 3000,
    reconnectionAttempts: 20,
    forceNew: true
    });
Run Code Online (Sandbox Code Playgroud)

Bri*_*ian 6

reconnection启用/禁用客户端的自动重新连接,即如果服务器断开或客户端互联网连接断开,它将尝试重新连接

来自https://socket.io/docs/client-api/socket.io(url[, options])

为给定的 URL 创建一个新的 Manager,并尝试在后续调用中重用现有的 Manager,除非使用 false 传递 Multiplex 选项。传递此选项相当于传递 'force new connection': true 或 forceNew: true。

因此,本质上,如果您不指定,forceNew: true它会尝试重用Manager可能已断开连接的可用资源。从表面上看,有些人在未指定此选项(socket.io client connect connect)的情况下手动断开连接和重新连接时遇到了麻烦,但是我对 Sockets.io 不够熟悉,无法评论其他潜在的警告指定此选项。