NodeJS,在 Heroku 上react,Socket.io 给出错误

IT技术 node.js reactjs heroku socket.io
2021-05-09 09:29:24

请帮助!我正在使用 Node/Express 和 React on Heroku 制作网站。Server.js 在客户端提供 expresshandlebar 模板,呈现 App.js

到目前为止一切正常,直到我尝试实现 Socket.IO。Socket.IO 在本地主机上完美运行,但在 Heroku 上出现错误:

VM63:35 WebSocket 连接到“ws://mysite:8080/socket.io-client/?EIO=3&transport=websocket”失败:WebSocket 握手期间出错:net::ERR_CONNECTION_RESET

这是代码的相关部分:

服务器.js

var express = require('express'),
var port = process.env.PORT || 8080;
var httpServer = require('http').createServer(app);
httpServer.listen(port)
io.on('connection', function (socket) {
console.log('Connection started');});

应用程序.js

var io = require('socket.io-client');
var new_socket = io.connect();

我已经阅读了很多网站,并尝试了很多替代方法,例如:1) 在客户端和服务器 socket.io 上设置“路径”和“传输”

path: '/socket.io-client'
transports: ['websocket']

2) 尝试 Heroku 推荐的 WebSockets。这会引发另一个错误“错误 503”

1个回答
this.io = socket.connect(yourpath, {
  transports: ['websocket'],
  upgrade: false,
});

首先,您需要连接到精确的套接字服务器。你能试试上面的代码吗,我在我的项目中使用它