请问cocos 3.x 如何使用socket.io

Creator 版本: 3.5.2
目标平台:网页浏览器

  • 重现方式:
    服务端使用 node.js+socket.io+express,代码如下:
    const express = require(“express”);
    const app = express();
    const http = require(“http”).Server(app);
    const sio = require(“socket.io”)(http);

http.listen(7575, () => {console.log(“server listen on 7575”);});

sio.on(“connection”, (socket) => {
console.log(“connection”);
socket.on(“message”, function (data) {console.log(“客户端发来消息:” + data);});
});

客户端按照网上看的教程:
import { _decorator, Component, Node } from “cc”;
const { ccclass, property } = _decorator;
//这是2.x时他们获取cocos自带socket.io的方法
const io = (window as any).io || {};
@ccclass(“main”)
export class main extends Component {
socket: Socket = null;
start() {
netUtil.Instance.init();
const socket = io(“http://127.0.0.1:7575”);
socket.on(“connect”, () => {
console.log(“连接成功”);
}); }}

  • 报错:没有报错,但网页控制台也没有显示连接成功,服务端也没有显示连接.

后来查阅node.js文档
在客户端的代码中安装 npm i socket.io-client
然后代码中 import { io } from “socket.io-client”;
结果creator编辑器报错了,提示:无法加载模块 node:fs :Error: 拒绝对模块 node:fs 的访问。.你似乎意图导入 Node.js 内置模块,但请注意 Creator 并未集成 Node.js 内置模块。

想请教一下各位前辈,在3.x版本中的creator,大家是如何使用socket.io与服务端进行通信的 :sob:

我们都不用socket.io

版上之前讨论过这个问题,被几个socket.io铁杆迷们 给喷了 意思是这么完美的东西 居然不用 非要用原始的ws 人家实在理解不了

请问下,大家都是用什么方式呢?

ws是指websocket吗?

ws不够简单吗?接口就基础的四五个,还封装一层,秀逗了

了解,谢谢!我是小白,也是看教程里别人用这些,教程里都是老版本的,所以产生这些疑问 :sweat_smile: