gpt4 book ai didi

Node.js 应用程序无法使用 socket.io-client 进行连接

转载 作者:搜寻专家 更新时间:2023-10-31 23:36:54 26 4
gpt4 key购买 nike

背景

我有一个使用 socket.io 的 Node.js 服务器,它通过 HTTPS 接受来自客户端的连接。

我知道这台服务器可以正常工作,因为我可以通过浏览器连接到它。

问题

问题是我无法创建 Node 应用程序作为客户端连接到此服务器。

我正在使用以下代码:

const io = require("socket.io-client");

const socket = io.connect("https://my.website.com:3002", { secure: true, reconnect: true });

socket.on("connect", function(){
console.log("connected");
});

socket.on("disconnect", function(){
console.log("disconnected");
});

socket.on("error", console.error);

服务器未注册任何连接,此应用程序未记录任何错误。看起来我连接到错误的服务器,但当我使用浏览器时,这个相同的 URL 工作正常。

研究

我已经在github和官方文档中搜索了答案。甚至来自 stackoverflow 的类似问题似乎也不起作用:

问题

我做错了什么?

最佳答案

回答

在意识到并非所有错误都进入“error” 事件后(特别感谢@RolandStarke),我发现我有一个一致的 XHR 池请求:

{ Error: xhr poll error
at XHR.Transport.onError (/Users/pedro/Workspace/backend-stresser/node_modules/engine.io-client/lib/transport.js:64:13)
at Request.<anonymous> (/Users/pedro/Workspace/backend-stresser/node_modules/engine.io-client/lib/transports/polling-xhr.js:128:10)
at Request.Emitter.emit (/Users/pedro/Workspace/backend-stresser/node_modules/component-emitter/index.js:133:20)
at Request.onError (/Users/pedro/Workspace/backend-stresser/node_modules/engine.io-client/lib/transports/polling-xhr.js:310:8)
at Timeout._onTimeout (/Users/pedro/Workspace/backend-stresser/node_modules/engine.io-client/lib/transports/polling-xhr.js:257:18)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5) type: 'TransportError', description: 503 }

获得这些信息后,我进行了快速搜索并找到了解决此问题的方法,这似乎是一个错误:

我现在使用的代码是:

const socket = io.connect("https://my.website.com:3002", { secure: true, reconnection: true, rejectUnauthorized: false });

它按预期工作。

关于Node.js 应用程序无法使用 socket.io-client 进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47696304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com