Commit Graph

75 Commits

Author SHA1 Message Date
James Chen 4dac6b3f36 Fixed WebSocket.cpp memory leaks (#17672) 2017-04-10 14:16:55 +08:00
James Chen 5c0c6d2e1e More powerful Uri class, adds unit test for Uri class. Refactors some code in SocketIO & Websocket. (#17472)
* More powerful Uri class, adds unit test for Uri class. Refactores some code in SocketIO & Websocket.

* Adds missing header file stdint.h

* Exports Uri class

* Uri belongs to network group

* Updates the location of group comment

* Removes an unused include.

* Updates Uri comment.
2017-03-09 10:14:39 +08:00
James Chen fc0ad058a5 fixed #17427: lws_parse_url has wrong behavior, it parses ’ws://domain.com/abc/d’ to ‘path: abc/d’ rather than ‘path: /adb/d’. (#17455)
* fixed #17427: lws_parse_url have wrong behavior, it parses ’ws://domain.com/abc/d’ to ‘path: abc/d’ rather than ‘path: /adb/d’.
Adds Uri class and parses Url to scheme, host, port, path in engine side.

* Moves Uri implementation to Uri.cpp, adds getter functions.

* Updates win32 project.

* Updates win10 project.

* Adds include header for atoi error on android.

* Updates tizen project configuration.
2017-03-07 13:35:59 +08:00
James Chen ce2f4e892f Websocket bug fix after PR#17440 was merged. (#17450)
* Websocket bug fix after PR#17440 was merged.

* typo fix
2017-03-07 09:35:14 +08:00
Tiffanyx 69d92bbe49 fixed #17433: [webSocket ] webSocket random crash in win32 (#17440) 2017-03-06 14:18:58 +08:00
James Chen 619e012d9b [WebSocket] Adds support for getting url and server selected protocol (#17381)
* [WebSocket] Adds support for getting url and server selected protocol

* Adds const keyword for getter methods, and make LOGE also works in release mode.
2017-02-20 09:44:20 +08:00
James Chen c553d418e4 [websocket] Pass nullptr for protocol parameter if there aren't any protocols are assigned. (#17379) 2017-02-17 11:18:13 +08:00
CocosRobot d07794052f Update license to 2017 (#17362)
* Typo: CopyRight -> Copyright

* Copyright update: chukong-inc.com -> Chukong Technologies Inc.

* [js files] Copyright update: 2014 -> 2014-2017

* [cpp files] Copyright update: 2014 -> 2014-2017

* Copyright update: 2015 -> 2015-2017

* [js files] Copyright update: 2014 -> 2014-2017

* Copyright update: 2016 -> 2016-2017

* Copyright update: 2013 -> 2013-2017

* Copyright update: 201?-201? -> 201?-2017

* License year fixes.

* Liscene year fix in CCRay.cpp

* Updates license years in CCGLProgramState.h & CCGLProgramStateCache.h
2017-02-14 14:36:57 +08:00
James Chen 4237639dd6 Some fixes for websocket (#17342)
* libwebsockets & curl are dynamic libraries now, modify project configuration for win32.
Updates WebSocketTest.cpp to test wss connection.

* Corrects some logic in WebSocket.cpp. Adds wss test case. WebSocketTest suggests developers to use `WebSocket::closeAsync` method which will not block current thread.

* mutex unlock fix in WebSocket.cpp. Reverts TEST URL.

* Allows self-assign cert.

* Each ws connection will create a virutal host now. Supports self-signed cert and update test case to suggest developer use ‘closeAsync’.

* Updates deps to 123.
2017-02-13 15:15:23 +08:00
James Chen b1f2a056b2 Refactor WebSocket to support SSL (wss) (#17172)
* Refactors WebSocket:
1. Supports wss protocol
2. Uses only one libwebsockets context, multiple wsi instances to avoid multi-thread issues
3. Uses lws_create_vhost to create multiple virtual host, different protocols works

* Adds openssl include path to xcode project configuration.

* mac doesn’t depend on curl

* ca file path should be full path.

* More bug fixes like which in https://github.com/cocos2d/cocos2d-x/pull/6986

* Remove curl dependence for mac

* Updates Andorid.mk

* [win32] Adds wss support for win32, and updates openssl, libcurl, libwebsockets libraries.

* Updates external/config.json to 118.

* [win32] Updates cocos/2d/libcocos2d.vcxproj to fix compilation error while building in release mode.

* Linux support websocket ssl connection.

* Updates external/config.json

* Updates install-deps-linux.sh

* Adds dependence of binutils, print ld version

* Updates travis scripts.

* Updates travis scripts.

* Updates travis script, don’t output log while extracting.

* update before-install.sh

* updates before-install.sh

* updates before-install.sh

* don’t output log for installing software.

* Updates config.json to 120.
2017-01-19 13:55:14 +08:00
Wilson E. Alvarez c0e1e91373 Performance tweak: Use range-based for-loops and allocate std::vector size() and *end() on the stack where favorable. (#16716)
* Use range-based for-loops and allocate std::vector size(), end(), cend(), rend(), crend() on the stack where favorable.

Other minor trivial changes were applied.

* Fixed Android compilation error

* Fixed windows-universal compilation error
2016-10-27 15:10:24 +08:00
James Chen 020745ee2e Disables 'permessage-deflate' extension for WebSocket temporarily. (#16366)
Currently, we couldn't find out the exact reason.
libwebsockets official said it's probably an issue of user code since 'libwebsockets' passed AutoBahn stressed Test.
2016-08-15 13:59:01 +08:00
mogemimi 15030ad4c3 Fix typos in log messages 2016-07-25 02:53:22 +09:00
pandamicro ea6a6a8586 Reverse include path in network module and update web engine 2016-05-25 23:58:11 +08:00
pandamicro 8692ee176c Merge branch 'v3' of github.com:cocos2d/cocos2d-x into v3
Conflicts:
	cocos/network/HttpAsynConnection-apple.m
	cocos/network/HttpClient-android.cpp
	cocos/network/HttpClient.cpp
	cocos/network/HttpCookie.h
	cocos/network/HttpRequest.h
	cocos/network/HttpResponse.h
	cocos/network/SocketIO.cpp
	cocos/network/WebSocket.h
2016-05-25 19:19:27 +08:00
pandamicro a03c45ce62 Update network licenses and reformat 2016-05-18 14:29:54 +08:00
mogemimi 16878a53b1 Suppress MSVC warning C4800 2016-05-13 11:44:17 +09:00
minggo 74af3b5232 merge v3.11 back to v3 2016-05-12 09:50:03 +08:00
pandamicro 85812b4f5b Remove client_no_context_takeover extension in WebSocket (not working on Android/iOS/Mac) 2016-05-10 20:35:02 +08:00
pandamicro fcfaafa4a5 Fix SocketIO fail to connect issue on Android 2016-05-04 17:43:36 +08:00
mogemimi a3ad4cddf8 Fix warnings about signed/unsigned mismatch 2016-04-22 12:20:05 +09:00
Xpol Wan dc0f7bf903 Fixes format warnings. 2016-04-18 17:52:58 +08:00
James Chen 6dff5fdc13 std::shared_ptr<bool> -> std::shared_ptr<std::atomic<bool>>
The reference count field in shared_ptr is threadsafe but the value field is not. So we need to wrap a std::atomic for preventing potential thread racing.
2016-04-07 15:06:19 +08:00
pandamicro 3d7d5de95d Merge pull request #15317 from pandamicro/v3
Fix Socket IO handshake issue with latest version libwebsocket
2016-04-01 22:27:57 +08:00
pandamicro d93fbea0f6 Fix Socket IO connection issue on iOS 2016-03-31 21:21:20 +08:00
pandamicro 7e87b8b389 Fix Socket IO handshake issue with latest version libwebsocket 2016-03-25 17:13:28 +08:00
Xpol Wan 90456d29ba Fixes 1605 include path in 541 files
using the tools/coding-style/include-linter.py with -f options.
2016-03-20 21:53:44 +08:00
Ricardo Quesada 9477bfd801 Merge pull request #15135 from dumganhar/ws-close-fix
Closes websocket connection by dispatching a 'resetDirector' event.
2016-03-10 17:39:47 -08:00
mogemimi 3a87ee46c6 Fix compiler warning: "/* within block comment" 2016-03-03 10:44:51 +09:00
James Chen 037051d9c4 Closes websocket connection by dispatching a 'resetDirector' event. 2016-02-29 18:55:51 +08:00
James Chen b73b16d425 Adds isDestroy std::share_ptr variable to dectect whether websocket instance was destroyed. 2016-01-22 17:43:30 +08:00
James Chen c3e0edde06 'closed' state has to be set before quit websocket thread. 2016-01-22 16:10:49 +08:00
James Chen a64a789308 _readyState must be set to State::CLOSED and _delegate->onClose(this) must be invoked at the end of WebSocket::close. 2016-01-22 15:20:43 +08:00
James Chen ed9ed6c92f Don't change the behavior of WebSocket::close method. WebSocket::close is an synchronous method before, adds a WebSocket::closeAsync method for asynchronous closing. 2016-01-22 14:22:33 +08:00
James Chen f0066d03d7 whitespace cleanup. 2016-01-13 21:15:48 +08:00
James Chen dacd51c839 More function name renames. createThread -> createWebSocket, quitSubThread -> quitWebSocketThread. 2016-01-13 21:15:48 +08:00
James Chen 649ed67371 Removes lws_get_internal_extensions, adds permessage-deflate extension. 2016-01-13 21:15:48 +08:00
James Chen fc38857e6b LWS_SEND_BUFFER_PRE_PADDING -> LWS_PRE 2016-01-13 21:15:48 +08:00
James Chen 5d1e98340e Updates WebSocket::onSocketCallback & WebSocketTest.js 2016-01-13 21:15:48 +08:00
James Chen 2b5fde79e0 Comment fix & function name fix for WsThreadHelper:
sendMessageToUIThread -> sendMessageToCocosThread
sendMessageToSubThread -> sendMessageToWebSocketThread
joinSubThread -> joinWebSocketThread
2016-01-13 21:15:48 +08:00
James Chen d122784ad4 Adds WebSocket::closeAllConnections() method. 2016-01-13 21:15:48 +08:00
James Chen f9e8ae0f09 WebSocket refactoring, bug fixes, improvements, and passes most Autobahn Test (The most standard WebSocket Protocol Test). 2016-01-13 21:14:38 +08:00
XiaoFeng ab0efd933a Merge branch 'v3.10' of https://github.com/cocos2d/cocos2d-x into v3
Conflicts:
	CHANGELOG
	cocos/scripting/js-bindings/manual/cocos2d_specifics.cpp
	tests/js-tests/src/RenderTextureTest/RenderTextureTest.js
2016-01-09 18:01:56 +08:00
Wenhai Lin 168e851cce Fixed WebSocket may automatically disconnected if invoke `send` several times in quick succession on Android. 2015-12-31 10:42:06 +08:00
pandamicro 022bcc24f1 Merge branch 'v3.10' of github.com:cocos2d/cocos2d-x into v3
Conflicts:
	cocos/scripting/js-bindings/manual/chipmunk/js_bindings_chipmunk_manual.cpp
	cocos/scripting/js-bindings/manual/component/CCComponentJS.cpp
	cocos/scripting/js-bindings/manual/js_bindings_opengl.cpp
2015-12-20 22:56:33 +08:00
Sergey a172cce874 fix web socket crash 2015-12-17 11:48:25 +03:00
Wenhai Lin 4fa58602a8 Adds `std::nothrow` to the `new` statements 2015-12-16 14:02:55 +08:00
Zhou Yuntao 507f221483 fix a problem where WebSocket messages will pile up if server sends them faster than client's frame rate 2015-06-22 20:58:37 +08:00
andyque fcfcb4fd71 fix websocket dead lock 2015-01-16 18:43:57 +08:00
minggo 2ec85f8c4e Merge pull request #8922 from TimothyZhang/do-not-lock-when-no-message-in-websocket
avoid locking when message queue is empty in websocket
2014-12-25 14:09:35 +08:00