From 4c119d3aa44c464027cb0628dd51711de101daaf Mon Sep 17 00:00:00 2001 From: u0u0 Date: Sat, 29 Feb 2020 22:24:39 +0800 Subject: [PATCH] fix win32 connect error, add log for error info. --- cocos/network/WebSocket.cpp | 13 ++++++++----- .../lua-bindings/manual/network/Lua_web_socket.cpp | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/cocos/network/WebSocket.cpp b/cocos/network/WebSocket.cpp index e3510c8..65afc2c 100644 --- a/cocos/network/WebSocket.cpp +++ b/cocos/network/WebSocket.cpp @@ -82,6 +82,7 @@ static void _winLog(const char *format, va_list args) } while (true); + printf("%s", buf); strcat(buf, "\n"); int pos = 0; @@ -224,14 +225,15 @@ static lws_context_creation_info convertToContextCreationInfo(const struct lws_p info.gid = -1; info.uid = -1; - if (peerServerCert) - { + if (peerServerCert) { info.options = LWS_SERVER_OPTION_EXPLICIT_VHOSTS | LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT; - } - else - { + } else { info.options = LWS_SERVER_OPTION_EXPLICIT_VHOSTS | LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT | LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED; } +#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) + // open IPv6 on Ipv4 will curse "socket connect fail" on Win32, temporary disable IPv6. + info.options |= LWS_SERVER_OPTION_DISABLE_IPV6; +#endif info.user = nullptr; return info; @@ -1301,6 +1303,7 @@ int WebSocket::onSocketCallback(struct lws *wsi, break; case LWS_CALLBACK_CLIENT_CONNECTION_ERROR: + LOGD("WebSocket (%p) onConnectionError: %s\n", this, (char *)in); ret = onConnectionError(); break; diff --git a/cocos/scripting/lua-bindings/manual/network/Lua_web_socket.cpp b/cocos/scripting/lua-bindings/manual/network/Lua_web_socket.cpp index 051d781..7e97cc7 100644 --- a/cocos/scripting/lua-bindings/manual/network/Lua_web_socket.cpp +++ b/cocos/scripting/lua-bindings/manual/network/Lua_web_socket.cpp @@ -325,7 +325,7 @@ int tolua_Cocos2d_WebSocket_registerScriptHandler(lua_State* tolua_S) LuaWebSocket* self = (LuaWebSocket*)tolua_tousertype(tolua_S,1,0); if (NULL != self ) { int handler = toluafix_ref_function(tolua_S,2,0); - ScriptHandlerMgr::HandlerType handlerType = (ScriptHandlerMgr::HandlerType)tolua_tonumber(tolua_S,3,0); + ScriptHandlerMgr::HandlerType handlerType = (ScriptHandlerMgr::HandlerType)(int)tolua_tonumber(tolua_S,3,0); ScriptHandlerMgr::getInstance()->addObjectHandler((void*)self, handler, handlerType); } }