CocosCreator3.8.2 有办法使用原始TCP,不使用websocket/http吗?

下面是GTP的说法:你提到你正在使用 Cocos Creator,这是一个游戏开发引擎,它并不支持 Node.js 的内置模块。

即使你通过 npm 安装了 net 模块,Cocos Creator 也无法使用它,因为 Cocos Creator 不支持 Node.js 的内置模块。你需要使用 Cocos Creator 提供的网络 API 来实现网络连接。

如果你需要在 Cocos Creator 中使用 TCP 连接,你可能需要使用 WebSocket,因为 WebSocket 是基于 TCP 的,并且被大多数游戏引擎支持。你可以使用 Cocos Creator 的 WebSocket 类来连接服务器。

你可以用c++自己写一个然后把接口绑定到ts层,不喜欢websocket可以用socket.io

2.x 我用过Socket.IO 需要借鉴嘛

试试你讲的方案,只是觉得TCP通信效率高于websocket

你的理解有些问题,首先说 应用层 没有直接使用TCP的方式 你最多是包装原生系统接口 包装SOCKET 让原生客户端SOCKET去和服务端的SOCKET相连 ,然后就算是原生SOCKET 也不会比比websocket通信效率高 ,它们的区别只是握手阶段有区别 一旦完成握手 剩下的没有任何区别了就

你封装的那个半吊子socket 能比大团队写的websocket效率高么?

1赞

WebSocket协议在每个数据帧上都添加了自己的帧头。这个帧头包含了一些元数据,如帧的长度、类型(例如,是否是文本或二进制数据)、是否是一个消息的最后一帧等。

WebSocket帧头的大小取决于帧的长度和是否使用了掩码。最小的帧头是2字节,用于长度为125字节或以下的未掩码的数据帧。最大的帧头是14字节,用于长度超过65535字节的掩码的数据帧。

每一帧都有帧头,除了握手阶段,传输阶段还是增大了网络流量。

如果发包过于频繁,可能会卡的哦,因为你的消息队列积压了几十,上百个消息,那肯定是不行的。 :joy: