29#include "../ExtensionsTest.h"
33using namespace cocos2d::network;
35SocketIOTests::SocketIOTests()
42 , _sioEndpoint(nullptr)
43 , _sioClientStatus(nullptr)
46 Size winSize = Director::getInstance()->getWinSize();
48 const int MARGIN = 40;
51 auto menuRequest = Menu::create();
52 menuRequest->setPosition(Vec2::ZERO);
53 addChild(menuRequest);
56 auto labelSIOClient = Label::createWithTTF(
"Open SocketIO Client",
"fonts/arial.ttf", 22);
58 itemSIOClient->setPosition(Vec2(
VisibleRect::left().x + labelSIOClient->getContentSize().width / 2 + 5, winSize.height - MARGIN - SPACE));
59 menuRequest->addChild(itemSIOClient);
62 auto labelSIOEndpoint = Label::createWithTTF(
"Open SocketIO Endpoint",
"fonts/arial.ttf", 22);
64 itemSIOEndpoint->setPosition(Vec2(
VisibleRect::right().x - labelSIOEndpoint->getContentSize().width / 2 - 5, winSize.height - MARGIN - SPACE));
65 menuRequest->addChild(itemSIOEndpoint);
68 auto labelTestMessage = Label::createWithTTF(
"Send Test Message",
"fonts/arial.ttf", 22);
70 itemTestMessage->setPosition(Vec2(
VisibleRect::left().x + labelTestMessage->getContentSize().width / 2 + 5, winSize.height - MARGIN - 2 * SPACE));
71 menuRequest->addChild(itemTestMessage);
74 auto labelTestMessageEndpoint = Label::createWithTTF(
"Test Endpoint Message",
"fonts/arial.ttf", 22);
76 itemTestMessageEndpoint->setPosition(Vec2(
VisibleRect::right().x - labelTestMessageEndpoint->getContentSize().width / 2 - 5, winSize.height - MARGIN - 2 * SPACE));
77 menuRequest->addChild(itemTestMessageEndpoint);
80 auto labelTestEvent = Label::createWithTTF(
"Send Test Event",
"fonts/arial.ttf", 22);
82 itemTestEvent->setPosition(Vec2(
VisibleRect::left().x + labelTestEvent->getContentSize().width / 2 + 5, winSize.height - MARGIN - 3 * SPACE));
83 menuRequest->addChild(itemTestEvent);
86 auto labelTestEventEndpoint = Label::createWithTTF(
"Test Endpoint Event",
"fonts/arial.ttf", 22);
88 itemTestEventEndpoint->setPosition(Vec2(
VisibleRect::right().x - labelTestEventEndpoint->getContentSize().width / 2 - 5, winSize.height - MARGIN - 3 * SPACE));
89 menuRequest->addChild(itemTestEventEndpoint);
92 auto labelTestClientDisconnect = Label::createWithTTF(
"Disconnect Socket",
"fonts/arial.ttf", 22);
94 itemClientDisconnect->setPosition(Vec2(
VisibleRect::left().x + labelTestClientDisconnect->getContentSize().width / 2 + 5, winSize.height - MARGIN - 4 * SPACE));
95 menuRequest->addChild(itemClientDisconnect);
98 auto labelTestEndpointDisconnect = Label::createWithTTF(
"Disconnect Endpoint",
"fonts/arial.ttf", 22);
100 itemTestEndpointDisconnect->setPosition(Vec2(
VisibleRect::right().x - labelTestEndpointDisconnect->getContentSize().width / 2 - 5, winSize.height - MARGIN - 4 * SPACE));
101 menuRequest->addChild(itemTestEndpointDisconnect);
104 _sioClientStatus = Label::createWithTTF(
"Not connected...",
"fonts/arial.ttf", 14, Size(320, 100), TextHAlignment::LEFT);
118 CCLOGINFO(
"SocketIOTest::testevent called with data: %s", data.c_str());
121 s << client->getTag() <<
" received event testevent with data: " << data.c_str();
129 CCLOGINFO(
"SocketIOTest::echotest called with data: %s", data.c_str());
132 s << client->getTag() <<
" received event echotest with data: " << data.c_str();
142 CCLOGINFO(
"SocketIOTest::message received: %s", data.c_str());
145 s << client->getTag() <<
" received message with content: " << data.c_str();
152 CCLOGINFO(
"SocketIOTest::json received: %s", data.c_str());
155 s << client->getTag() <<
" received json message with content: " << data.c_str();
162 CCLOGINFO(
"SocketIOTest::connect called");
165 s << client->getTag() <<
" connected!";
172 CCLOGINFO(
"SocketIOTest::disconnect called");
175 s << client->getTag() <<
" disconnected by server!";
199 _sioClient = SocketIO::connect(
"ws://tools.itharbors.com:4000", *
this);
216 _sioEndpoint = SocketIO::connect(
"ws://tools.itharbors.com:4000/testpoint", *
this);
249 if (
_sioClient !=
nullptr)
_sioClient->emit(
"echotest",
"{\"name\":\"myname\",\"type\":\"mytype\"}");
266 s <<
_sioClient->getTag() <<
" manually closed!";
271 s <<
"Socket.io Test Client not initialized!";
288 s <<
"Socket.io Test Endpoint not initialized!";
299 CCLOGINFO(
"SocketIOTest::onClose called");
302 s << client->getTag() <<
" closed!";
311 CCLOGERROR(
"SocketIOTest::onError received: %s", data.c_str());
314 s << client->getTag() <<
" received error with content: " << data.c_str();
#define ADD_TEST_CASE(__className__)
void echotest(cocos2d::network::SIOClient *client, const std::string &data)
Socket.io event handler for custom event "echoevent"
void onMenuSIOEndpointClicked(cocos2d::Ref *sender)
cocos2d::network::SIOClient * _sioClient
void onMenuTestEndpointDisconnectClicked(cocos2d::Ref *sender)
cocos2d::Label * _sioClientStatus
void connect(cocos2d::network::SIOClient *client, const std::string &data)
Socket.io event handler for event "connect"
void testevent(cocos2d::network::SIOClient *client, const std::string &data)
Socket.io event handler for custom event "testevent"
void onMenuTestEventClicked(cocos2d::Ref *sender)
void message(cocos2d::network::SIOClient *client, const std::string &data)
Socket.io event handler for event "message"
void closedSocketAction(cocos2d::network::SIOClient *client)
Common function to call on both socket.io disconnect and websocket close
void onMenuTestEventEndpointClicked(cocos2d::Ref *sender)
void onMenuTestClientDisconnectClicked(cocos2d::Ref *sender)
virtual void onError(cocos2d::network::SIOClient *client, const std::string &data) override
Used for network level socket error (not for disconnect from the socket.io server)
void onMenuTestMessageEndpointClicked(cocos2d::Ref *sender)
void json(cocos2d::network::SIOClient *client, const std::string &data)
Socket.io event handler for event "json" This is only used in v 0.9.x, in 1.x this is handled as a "m...
void onMenuSIOClientClicked(cocos2d::Ref *sender)
cocos2d::network::SIOClient * _sioEndpoint
virtual void onClose(cocos2d::network::SIOClient *client) override
Used for network level socket close (not for disconnect from the socket.io server)
void onMenuTestMessageClicked(cocos2d::Ref *sender)
void disconnect(cocos2d::network::SIOClient *client, const std::string &data)
Socket.io event handler for event "disconnect"
static cocos2d::Vec2 left()
static cocos2d::Vec2 rightBottom()
static cocos2d::Vec2 right()