无法使用 nodejs 设置与浏览器的连接 socket.io



我在尝试设置 nodejs - 浏览器 socket.io 连接时遇到一个奇怪的错误。

我已经将 socket.io 相关的代码迁移到一个文件中,这里是:

import socketIO from 'socket.io';
import https from 'https';
import express from 'express';
import fs from 'fs';
var listener,
io;
listener =  https.createServer({
key: fs.readFileSync('/path/to/key'),
cert: fs.readFileSync('/path/to/crt')
}, express());

listener.listen(3200, function() {
console.log("Listening on 3200"); 
io = socketIO(listener, {
rejectUnauthorized: false,
wsEngine: "ws"
});
io.on('connection', function(socket){
console.log('a user connected');
});
});

如果我使用node main.js运行此文件,控制台会输出以下消息:

(节点:615( 实验性警告:ESM 模块加载器是实验性的。
收听 3200

现在,如果我尝试使用浏览器导航到https://my.domain.name:3200,浏览器会输出以下消息:

无法获取/

并且不会从节点服务器接收到任何输出。

可能导致此问题的原因是什么?

您必须创建与 https://my.domain.name:3200 的Web套接字连接,而不仅仅是转到页面。尝试遵循 https://socket.io/get-started/chat/,它将显示如何提供网页以建立该连接。

最新更新