尝试设置Node.js-浏览器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
,浏览器将输出以下消息:
无法获取/
并且没有从节点服务器接收到任何输出。
什么可能导致此问题?
答案 0 :(得分:1)
您必须创建到https://my.domain.name:3200的Web套接字连接,而不仅仅是转到页面。尝试遵循https://socket.io/get-started/chat/,它将显示如何提供网页以建立该连接。