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与服务端进行通信的 
