3.4 版本特定条件下无法重启

安卓平台
1 新建一个工程
2 启动时在onLoad 创建 2个WebSocket 实例
3 点击按钮调用 game.restart()
点击按钮后直接退出程序,没有重启,也没有任何报错信息!
相反 如果只创建一个 WebSocket 实例可以重启
100%必现

 创建两个实例无法重启
 var socket1 = new WebSocket("ws://xxxx1") 可以正常连接成功 
 console.log("创建一个", socket1)
 var socket2 = new WebSocket("ws://xxxx2") 可以正常连接成功 
 console.log("创建一个", socket2)

谢谢反馈,我们试一下。


在这个位置加个判断可以临时解决一下

奈斯 多谢大佬

这个问题是在哪个版本修复?

有些好奇 这种如果3.X的有问题 那么2.X的是不是也有同样的问题? 但2.X的感觉WebSocket 比较稳定还,不想3.X的好像总是报这样那样的错误,
所以这里有个疑问,WebSocket 这种东西 难道不是2.X 3.X通用的吗 应该说100%一样才对,为什么差别这么大呢 WebSocket 和显示系统 和2D 3D应该完全没有关系才对?

请问改完后问题还存在吗?

你好, 该问题可以按如下方式修改. 将在3.5版本修复

diff --git a/cocos/platform/Application.cpp b/cocos/platform/Application.cpp
index 76b29d8ac..c309a03e4 100644
--- a/cocos/platform/Application.cpp
+++ b/cocos/platform/Application.cpp
@@ -50,9 +50,9 @@ void Application::restartVM() {
 #if USE_AUDIO
     cc::AudioEngine::stopAll();
 #endif
-#if USE_SOCKET
-    cc::network::WebSocket::closeAllConnections();
-#endif
+// #if USE_SOCKET
+//     cc::network::WebSocket::closeAllConnections();
+// #endif
     cc::network::HttpClient::destroyInstance();
 
     scheduler->removeAllFunctionsToBePerformedInCocosThread();
@@ -76,9 +76,9 @@ void Application::close() { // NOLINT
 #if USE_AUDIO
     cc::AudioEngine::stopAll();
 #endif
-#if USE_SOCKET
-    cc::network::WebSocket::closeAllConnections();
-#endif
+// #if USE_SOCKET
+//     cc::network::WebSocket::closeAllConnections();
+// #endif
     cc::network::HttpClient::destroyInstance();
 
     scheduler->removeAllFunctionsToBePerformedInCocosThread();

好的 多谢

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。