WebSocket 在连接建立之前关闭。 Socket.io 和反应

WebSocket is closed before the connection is established. Socket.io and React

我想用 Socket.io 创建一个聊天应用程序,并且我已经按照本教程进行操作:https://youtu.be/ZwFA3YMfkoc。我正在使用 React 和 Node.js

在本地甚至在我网络上的不同设备上使用它时一切正常。但是,如果我在 Heroku 上托管我的后端,它就不起作用。

错误信息是: WebSocket connection to 'URL' failed: WebSocket is closed before the connection is established. (URL 是我的带有端口的后端的 URL)。我正在使用 SSL。

我已经尝试启用会话关联,但它已经启用了。

我的后端代码是:(至少我认为对问题很重要的代码)

const app = express();
const server = http.createServer(app);
const io = socketio(server);
app.use(cors()); 
server.listen(PORT, () => console.log("Server started on " + PORT));

我的前端代码是用 React 编写的,并且是:

var connectionOptions = {
  "force new connection": true,
  reconnectionAttempts: "Infinity",
  timeout: 10000,
  transports: ["websocket"],
};
const ENDPOINT = "URL"; 
socket = io(ENDPOINT, connectionOptions);

调用 socket.connect() 或仅在您提供的选项中添加 autoconnect: true。

所以我已经解决了我的问题。

客户端的URL必须没有端口。 例如: const ENDPOINT = "https://web.site.com";

而不是: const ENDPOINT = "https://web.site.com:1337";