WebSocket在连接建立之前被关闭.套接字.io和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);

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

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

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

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