socket.io 客户端无法连接和接收服务器发出的消息

socket.io client not able to connect and receive messages emit by server

我正在从端口 8001 上的 socket.io 服务器 运行 发出消息 但是我的 socket.io 客户端无法连接和接收这些消息

我的index.html(客户):

    <script src="https://cdn.socket.io/socket.io-4.0.0.js"></script>
    <script>
      //var socket = io();
      //var socket = io.connect('http://localhost:8001');
      var socket = io('http://localhost:8001', { transports : ['websocket'] });
      socket.on('connect', function(){
        console.log("connected");
        socket.on("message", data => {
          console.log(data);
        });
      });
    </script>

我的 nodejs 服务器代码:

    const app = require("express")();
    const server = require("http").createServer(app);
    
    const io = require("socket.io")(server, {
        cors: {
          origin: '*',
        }
      });
    
    io.on("connection", () => {
        console.log("Connected!");
    });
    
    var redis = require('redis');  
    //var url = "redis://:@localhost:6379"; 
    //var redis = require('redis-url').connect();
    //var client = redis.createClient(url);  
    var client = redis.createClient();  
    //var client = redis.createClient();
    client.on("error", function(error) {
      console.error(error);
    });
    client.subscribe('notification');
    client.on('message', function(channel, msg) {  
      console.log("Message received: "+msg);
      io.sockets.emit(msg);
    });
    
    console.log('starting server on 8001...');
    server.listen(8001);

我的节点 js 服务器控制台日志:

starting server on 8001...
Message received: from laravel
io.sockets.send(msg);

这对我有用。还要确保您在客户端和服务器

上使用相同版本的 socket.io