Commit Graph

61 Commits

Author SHA1 Message Date
Ricardo Quesada 89d210bdb3 CCAssert -> CCASSERT
and other best pracitces like:

capacity and "index" are ints and not unsigned int (google's recomendation).
 It is easier to detect underflow bugs like this

plus other minor improvements
2013-07-19 22:01:27 -07:00
Lee, Jae-Hong 980a053e50 [Tizen] Fix compile error.
- Tizen SDK doesn't support override keyword yet.
- add class keyword before friend keyword.
2013-07-19 15:16:05 +09:00
minggo eada29ee40 issue #2404:created CCDprecated.h and move all global functions and variables into it 2013-07-15 16:14:26 +08:00
James Chen 93bb7bcb31 friend SIOClientImpl --> friend class SIOClientImpl, that will be clearer. 2013-07-13 19:26:46 +08:00
James Chen 4b2165e648 Merge branch 'develop' of https://github.com/cocos2d/cocos2d-x into socketio 2013-07-13 19:24:41 +08:00
James Chen 8409e2942f Fixing warning in SocketIO.cpp 2013-07-13 19:20:11 +08:00
Chris Hannon 8791c8119e task: hiding non-interface methods in the SsocketIO and SIOClient classes, adding SIOClientImpl as friend to access 2013-07-12 13:05:15 -04:00
Ricardo Quesada cf262c28e2 getInstance() / destroyInstance() are used...
... instead of sharedXXX / purgeXXX.
They are more C++ friendly, and also easier to remember.

common files + Mac files + iOS files + tests/samples files were updated.

The old methods are deprecated now.
2013-07-11 15:24:23 -07:00
Chris Hannon 126ebb888c Implements a socket.io client extension, adds a test case and updates the android makefiles.
Contains the following tasks:
-initial socket.io extension commit
-sioclientimpl subclasses websocket:delegate to respond to websocket events
-implement static connect methods and basic client creation
-move SocketIO class files into correct extension folder (network)
-create SocketIO test in TestCpp
-update project references
-add missing static modifier to connect method
-implement basic test methods
-update extensions tests with SocketIO test entry
-implement basic handshake and opensocket methods for SocketIO
-add Delegate class to handle callbacks, implement virtual Delegate methods in test
-implement socket and client registries for lookup when connecting to hosts and endpoints
-connect delegate onOpen method by separating impl creation from connection
-update test to demonstrate onOpen callback
-create send and emit methods, move SIOClient into header file, add send and emit methods to test
-implement basic socket.io message parsing
-improve logging for events and messages
-add logic to pull event name from payload
-schedule heartbeat to keep connection alive, scheduled for 90% of the heartbeat interval from the server for safety
-add onConnect handler to to catch socket.io onconnect vs websocket onopen
-add disconnect and disconnectFromEndpoint methods to properly disconnect and destroy objects
-modify SIOClientImpl to track _uri for easier lookup in registries
-connect handler for onMessage to message event from socket.io, modify onError handler to take a string instead of WebSocket error code
-create SIOEvent callback type, implement event registry in clients, add test for event registration and callback
-update SIOEvent to use std::function and c++11, utilize cocos2d CC_CALLBACK method to bind selectors, this ensures that the *this reference is properly passed
-check for connect before sending or emitting in the client, cleanup some codes
-change connect logic to reuse existing socket connections instead of opening a new one
-implements get and set Tag methods for clients for easy reference
-improve endpoint handling, add endpoint tests to test layer
-additional error handling within socket disconnect error and failure to open connection
-fixes extracting endpoint from socket.io messages (in cases of the connect message, where there is 1 less colon for the connect message to the default namespace). Also fixes connecting to the default namespace "/" in the connectToEndpoint method
-add disconnect and onClose handlers to client so that onClose is called in the delegate
-add disconnect test methods to test layers
-change c-style casts to static_casts when using a CCDICT_FOREACH
-remove some unneeded namespace completion
-add usage documentation
-add handling for disconnect from server, cleanup some codes
-update comments and documentation in the socketiotest
-update includes so the NDK doesn't complain when compiling with c++11
-add socketio.cpp and test.cpp to the android makefiles
-update test URL to my public server, test script can also be found in my repo at https://github.com/hannon235/socket.io-testserver.git

Signed-off-by: Chris Hannon <himynameschris@gmail.com>
2013-07-11 17:41:42 -04:00
James Chen 3af6f6fe58 enableCookies is static method now 2013-07-10 15:46:01 +08:00
James Chen 3f57275848 issue #2389: Adding cookie support for HttpClient 2013-07-10 11:37:39 +08:00
James Chen ae737365d7 issue #2305: Sleep(50) on Win32, usleep(50000) on unix --> std::this_thread::sleep_for(std::chrono::milliseconds(50)); 2013-06-26 11:34:04 +08:00
James Chen ea36707c57 issue #2305: Using the old logic of "wait". 2013-06-26 11:10:19 +08:00
James Chen 3ad11cc63a issue #2305: Fixing a bug that passing wrong mutex parameter to "wait". 2013-06-26 11:06:13 +08:00
James Chen f2ab73c533 issue #2305: Reverting to use lock and unlock for HttpClient. 2013-06-26 10:45:46 +08:00
James Chen 8a0046a139 issue #2305: Fixing a crash when error is triggered in WebSocket. Using std::lock_guard to replace lock and unlock manually. 2013-06-26 10:11:10 +08:00
James Chen 79962cdf5d issue #2305: Using c++11 std::thread instead of pthread for HttpClient class. 2013-06-26 10:11:10 +08:00
James Chen 3b9fa904ba issue #2305:use c++11 thread instead of pthread for WebSocket. 2013-06-25 12:51:44 +08:00
James Chen cb67ed0227 issue #2129: Removing CC prefix for extension module. 2013-06-20 14:15:53 +08:00
James Chen 1ea7fd2594 Merge pull request #2904 from edwardzhou/master
closed #2312: WebSocket url parse error for 'ws://domain.com/websocket' pattern
2013-06-19 05:04:11 -07:00
Edward Zhou 53be008dcf fix url parse error for 'ws://domain.com/websocket' pattern 2013-06-17 18:28:12 +08:00
James Chen c0d44cb2e4 fixed #2129: Rename m_iVar to _var, remove CC prefixes. 2013-06-15 14:03:30 +08:00
James Chen a14df8d28d issue #2271: Fixing some memory leaks. 2013-06-10 11:43:43 +08:00
minggo 81b579c032 issue #2271: fixed memory leak of WebSocket 2013-06-09 14:50:51 +08:00
James Chen 5c8d4378a6 Fixing compilation errors in TestLua for Win32. 2013-06-07 21:23:15 +08:00
samuele3hu 5986d3904d Merge branch 'master' of https://github.com/cocos2d/cocos2d-x into test_sample_of_http_bind 2013-06-07 10:14:12 +08:00
samuele3hu 66d4acc31a issue #2103 add webSocket lua test sample 2013-06-07 10:12:01 +08:00
samuele3hu e4ec801363 issue #2103 add webSocket lua test sample 2013-06-06 22:29:02 +08:00
James Chen f056757a9f Adding libwebsockets license in WebSocket.h/.cpp. 2013-06-06 14:16:57 +08:00
James Chen f2f0f031c7 fixed #1647: Renaming enumerations to Cocos2d-x style. ERROR and ERROR_TIMEOUT is defined as macros on Windows, fuck it. 2013-06-03 09:55:43 +08:00
James Chen 4b8f76c903 WS_ERROR -> ERROR, WS_STATE -> STATE. 2013-06-02 18:56:49 +08:00
James Chen cedb427a6e fixed #1647: Adding WebSocket support for Cpp and JSB.
Conflicts:
	extensions/proj.win32/libExtensions.vcxproj
	extensions/proj.win32/libExtensions.vcxproj.filters
2013-06-02 18:55:57 +08:00
James Chen ad340f0a32 fixed #2092: Make some function static. 2013-05-20 18:11:55 +08:00
James Chen af655ce965 fixed #2092: #define httpresponse_selector(_SELECTOR) (SEL_HttpResponse)(&_SELECTOR) --> #define httpresponse_selector(_SELECTOR) (cocos2d::extension::SEL_HttpResponse)(&_SELECTOR). 2013-05-20 17:48:21 +08:00
Carsten Sandtner 354a8408f6 Added getter and setter for raw header data 2013-05-13 16:57:07 +02:00
James Chen 7a472f7f5d Moving CC_DEPRECATED_ATTRIBUTE to the front of functions in HttpRequest.h 2013-05-08 11:32:09 +08:00
James Chen 912905054e fixed #2123: Refactoring network extension, fixing unlikely memory leaks, adding PUT/DELETE methods.
Merge branch 'curl_raii' of https://github.com/sergey-shambir/cocos2d-x into sergey-shambir-curl_raii

Conflicts:
	extensions/network/HttpClient.cpp
	samples/Cpp/TestCpp/Classes/ExtensionsTest/NetworkTest/HttpClientTest.cpp
2013-05-07 15:37:25 +08:00
James Chen a9aafdafac Merge pull request #2490 from coolengineer/pull-request-httpclient
fixed #2119: Introduce HttpResponse callback selector type to resolve #2365, fixed version ;-)
2013-05-06 23:44:20 -07:00
Hojin Choi a9ace2505e Introduce HttpResponse callback selector type. to resolve #2365 2013-04-28 03:55:58 +09:00
Andre Rudlaff 3bd67a47fa Fixed crash in HttpClient request on 64Bit
According to the cURL documentation the pointer that should be passed
to curl_easy_getinfo with CURLINFO_RESPONSE_CODE must be a long
pointer,

On platforms where long is 64Bit this will cause a stack corruption
destroying the pointer to the original resonse as the current response
code variable was a 32 Bit int value.

See: http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
2013-04-27 17:55:07 +02:00
Andre Rudlaff 43615fe0a7 don't use named semaphore in HttpClient
this patch removes using named semaphores for Http requests.
This also destroys the mutexes from CCTextureCache when the thread is
destroyed
2013-04-27 17:44:33 +02:00
Sergey Shambir 8507f7a386 network: Added PUT and DELETE request types 2013-04-21 20:54:52 +04:00
Sergey Shambir 270eeb4d9a Refactored and fixed almost impossible memory leak.
Previously curl_slist_free_all(cHeaders) called in loop after
many break statements, so there was no garantue that it will be called
in all cases.

This change also simplifies code to make implementing PUT/DELETE methods
easier.
2013-04-21 18:58:35 +04:00
minggo 18a345071a Merge pull request #2375 from billy1380/master
fix for issue #2366
2013-04-17 01:48:34 -07:00
billy1380 16b9506690 fixed a bug that was causing http client to fail on mac os x with
semaphore error
2013-04-15 22:49:29 +01:00
Sam Clegg 04c1a863a0 Remove tailing newlines from CCLog messaages.
Some CCLog message contained trailing newlines which
made the logs hard to read on many platforms.  The solution
here is to stip trailing newlines on those platforms, and also
to remove the newlines from the existing log messages.
2013-03-16 09:01:21 -07:00
Sam Clegg 38878b084b Fix all compiler warnings produced by gcc.
This allows the linux and NaCl builds (and perhaps others)
to be compiles with -Wall and -Werror, and it makes the build
output much less noisy.
2013-03-05 17:01:00 -08:00
folecr c0ecad31fe Consistent use of CCAssert
* Remove @
 * Use CCAssert instead of CC_ASSERT (number of parameters differ between the two)
2013-01-08 14:11:34 -08:00
Lu Guanqun 0f2d8f8c6b fix the doxygen warnings
cocos2d-x.git/extensions/network/HttpClient.h:64: warning: The following parameters of cocos2d::extension::CCHttpClient::setTimeoutForConnect(int value) are not documented:
  parameter 'value'
cocos2d-x.git/extensions/network/HttpClient.h:79: warning: argument 'timeout' of command @param is not found in the argument list of CCHttpClient::setTimeoutForRead(int value)
cocos2d-x.git/extensions/network/HttpClient.h:79: warning: The following parameters of cocos2d::extension::CCHttpClient::setTimeoutForRead(int value) are not documented:
  parameter 'value'
2012-11-25 23:27:29 +08:00
minggo a09367ca7e Merge pull request #1491 from sburavtsov/HttpClient-destroy-fix
Fix for correct unscheduling and instance destruction
2012-10-25 02:05:34 -07:00