首先使用npm安装socket.io客户端

然后在脚本中导入并创建
![]()
cocos的IDE中直接编译失败
socket.io这块的使用有什么讲究吗?
说句难听的话 直接用自带的WS会死吗, 多简单的东西 非要自己把问题复杂化
你试试改为这様, 不过我用的是 socket.io 2.x的版本, 估计4.x 没啥区别
import { connect } from ‘socket.io-client’
const socket = connect(url,option)
也不能这麽説, 有可能是人家公司服端架构就是socket.io的, 你一个后进公司的人你总不能让别人把架构都换回ws吧, 况且ws 与 socket.io又不互通
自带的有用过,不过看socket.io服务端集成的比较好,所以想尝试一下
噢噢,那我用的socket.io4.8.1的,前一个项目用的2.x的可以,我只是想更新版本试试看
好像是cc 对 那些支持cjs与esm的node库都有问题, 很多时候要不是纯cjs, 要不就是纯esm
这个是不是没办法解决,我查资料说只要在package.json中加什么babel参数就好了,但是加了也没用
噢噢,那只有4.x的不能用了,感谢支持
4.x 也有方法可以正常运作, 把node_modules库里socket.io-client/package.json中把
"import": { "types": "./build/esm/index.d.ts", "default": "./build/esm/index.js" },
改成
"import": { "types": "./build/cjs/index.d.ts", "default": "./build/cjs/index.js" },
再一步证明cc 对esm支持有问题
666,果然社区大神多。社区是我家,天天爱上它 
改完之后好用吗?改了之后编译是通过了,但是运行报错了:

你爱得太早了
,砸还有fs这种模块 , fs是本地nodejs的
不清楚啊
崩溃了,还是不能私自乱改,水平有限
你还是用3吧,这个处理支持有问题,按了葫芦又起瓢
行吧,只能这样了。封装的模块确实不能轻易改的
做了一下实验, cc3.8 前的版本是可以用的, 3.8后应该加了一些强验证处理, 我试了部分支持esm与cjs的库, 如果你esm的库引用的index副档名不是mjs, 就跑不了。 试了几个有些可行, 有些不行, socket.io 我改了副档名, 改了路径依旧不行, 所以不知道开发组加了甚麽谜之操作