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";
我想用 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";