3.8.1客户端脚本编译就会额外创建websocket连接

最近尝试让客户端和websocket连接,结果每次在浏览器上运行,服务端后台就会看到建立两次连接,在模拟器运行上甚至会建立三次连接。随后排查了一下问题,发现是cocos编辑器每次自己要提前建立连接。

每次关闭浏览器运行的cocos客户端,服务端后台会看到只断开一个连接,此时再关闭cocos编辑器,多出来的连接就会断开,这就证实了是cocos编辑器也会建立一个或者两个websocket连接。

为了验证这个猜想,我注释了一下客户端连接服务端的代码,此时自然是不会建立连接,但当我仅仅再次取消了注释,保存了一下脚本,并没有运行cocos客户端,服务端就莫名其妙地又接收了一次websocket连接,这说明cocos编辑器每次编译都会建立和服务端的连接。

另外我是多场景的项目,不知道有没有联系。

请问大佬们,这种问题怎么处理啊,求求救一下小白。

以下是创建websocket连接的代码。
image

之前采用的方法是设置全局的静态调用,不挂在节点上,直接导入到其他脚本,也会出现同样的问题
现在我是把它挂载到最一开始的场景里,然后把这个组件全局化了(组件就是那个this.bgg),未解决问题,说明应该和这点没关系吧。
image

  • Creator 版本:cocos3.8.1
  • 目标平台: 谷歌浏览器 模拟器
  • 重现概率:每次都会出现以上情况
1赞

你继承componet 挂了几份?

就只是在一开始的场景例挂载了一次。ps:意思是挂了几个节点吧?上面放了相关代码。

是不是启用了编辑器运行

你的ws是个静态实例,编译时实例化一次很正常吧。 :thinking:

我在做demo时也遇到过这个问题,ws在函数内创建,脚本没有在编辑器环境运行,没仔细看是什么问题导致的

构建后,在微信和抖音开发者工具里面不会出现这种问题。所以该问题其实对于后续开发等操作无所谓。