无法使用Node.js与浏览器建立socket.io连接

时间:2019-12-23 11:54:11

标签: node.js socket.io

尝试设置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,浏览器将输出以下消息:

  

无法获取/

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

什么可能导致此问题?

1 个答案:

答案 0 :(得分:1)

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