【问题标题】:Can't setup socket.io connection with the browser using nodejs无法使用 nodejs 设置与浏览器的 socket.io 连接
【发布时间】:2019-12-23 11:54:11
【问题描述】:

我在尝试设置 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 运行此文件,控制台会输出以下消息:

(node:615) ExperimentalWarning:ESM 模块加载器是实验性的。
在 3200 上收听

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

无法获取/

并且没有收到来自节点服务器的输出。

什么可能导致这个问题?

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 2018-12-18
      • 2019-06-06
      • 1970-01-01
      相关资源
      最近更新 更多