之前,我得到了输出“xhr poll error”,代码如下:
import { io } from "socket.io-client";
const socket = io("https://socket.io/docs/v4", {
reconnection: true,
reconnectionDelay: 1000,
reconnectionDelayMax: 5000,
reconnectionAttempts: 3
});
socket.on('connect_error', function(error) {
console.log(error.message);
});
经过一点研究,通过添加“运输:['websocket']"。以下是我的当前代码:
import { io } from "socket.io-client";
const socket = io("https://socket.io/docs/v4", {
reconnection: true,
reconnectionDelay: 1000,
reconnectionDelayMax: 5000,
reconnectionAttempts: 3,
transports: ['websocket']
});
socket.on('connect_error', function(error) {
console.log(error.message);
});
不幸的是,这并没有真正解决我的问题,因为现在我得到了以下输出:WebSocket错误。
我尝试过的其他方法:在URL后指定端口,并将rejectUnauthorized设置为false。(两者都给我同样的WebSocket错误。
我有点为难下一步该怎么做,很高兴听到你们的一些反馈!
Socket.io-client版本:4.5.1
3条答案
按热度按时间xyhw6mcr1#
默认情况下,客户端将尝试建立WebSocket连接,如果可能的话,将回退到HTTP长轮询,这解释了为什么您提到的第一个更改解决了轮询错误,但现在您有一个websocket错误。
如果它尝试自动重新连接,您可能需要启用CORS或设置凭据。如果不是,您应该尝试在超时后使用
socket.connect()
手动重新连接jmp7cifd2#
这可能是客户端和服务器库的版本兼容性问题。我也有类似的问题,在查看www.example.com后添加www.example.com就解决了https://socket.io/docs/v4/server-options/#alloweio3https://socket.io/docs/v4/client-installation/#version-compatibility
e5nqia273#
对于那些可能会遇到这个问题在未来(使用世博会React应用程序)我得到“WebSocket错误”,因为我的应用程序无法达到我的快递服务器在http://localhost:3000我不得不切换'localhost'为我的本地pc ip。
(how获取您的-> https://www.avast.com/c-how-to-find-ip-address#:~:text= You%20can%20find%20your%20local,listed%20next%20to%20IPv4%20address.)
我在服务器上所要做的就是添加
在我的委托人身上
注意,这只是本地开发的解决方案,而不是生产环境