ESP8266通过ArduinoWebSockets连接Fly.io的Socket.io服务器的正确端口是什么?
解决ESP8266 Socket.io连接Fly.io服务器的端口问题
Fly.io的端口转发逻辑和Heroku类似,但需要注意外部访问的标准端口使用:
- 对于未加密的WebSocket(ws协议),ESP8266代码里应该使用端口
80,修改你的初始化代码为:webSocket.begin("sbca-server.fly.dev", 80); - 对于加密的WebSocket(wss协议,更安全),需要使用端口
443,并改用SSL初始化:webSocket.beginSSL("sbca-server.fly.dev", 443);
额外注意事项:
- 你的Node.js服务器代码必须监听
process.env.PORT环境变量指定的端口,而不是硬编码端口号,示例代码:
Fly.io会自动将外部80/443端口的流量转发到这个内部端口,不需要手动配置端口映射。const io = require('socket.io')(); const port = process.env.PORT || 3000; io.listen(port); - 确认你的Fly.io应用已正常运行,可以通过
fly status命令在本地终端查看应用状态。 - 排查ESP8266的网络连通性:可以通过串口打印DNS解析结果,或者尝试在设备所在网络下访问
sbca-server.fly.dev,确保网络没有拦截相关端口的流量。
内容的提问来源于stack exchange,提问作者Eric Echemane
相关产品推荐
相关产品推荐

