Cocos2d-x3.8.1网络编程(Socket)
来源:互联网 发布:微盟weimob源码下载 编辑:程序博客网 时间:2024/05/14 07:03
//同样的Cocos2d-x游戏引擎为socket进行了封装整合
//加入头文件
#include "network/SocketIO.h"
//加入命名空间
using namespace cocos2d::network;
//.h文件
//继承SocketIO内部类中的SIODelegate类
class HelloWorld : public cocos2d::Layer,cocos2d::network::SocketIO::SIODelegate
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
// implement the "static create()" method manually
CREATE_FUNC(HelloWorld);
//重写SIODelegate类中的四个虚函数
virtual void onConnect(cocos2d::network::SIOClient* client);
virtual void onMessage(cocos2d::network::SIOClient* client,const std::string& data);
virtual void onClose(cocos2d::network::SIOClient* client);
virtual void onError(cocos2d::network::SIOClient* client,const std::string& data);
cocos2d::network::SIOClient* client;
};
//.cpp文件
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if (!Layer::init())
{
return false;
}
Size size = Director::getInstance()->getWinSize();
//初始化,置为NULL
client=nullptr;
//为了方便检测设置Label文本
auto menu=Menu::create();
menu->setPosition(Vec2::ZERO);
this->addChild(menu);
auto openSocketLabel=Label::create("openSocket","Arial",24.0f);
auto openSocketItem=MenuItemLabel::create(openSocketLabel,[this](Ref* ref)
{
//创建客户端对象并连接服务器
client=SocketIO::connect("ws://192.168.1.103:3000", *this);
client->setTag("HelloWord");
//自定义事件侦听,接收信号,与client->emit()相对应
client->on("log",[this](SIOClient* m_client,const std::string& data)
{
log("emit message:&s",data.c_str());
});
});
openSocketItem->setPosition(size/2);
menu->addChild(openSocketItem);
auto sendSocketLabel=Label::create("sendSocket","Arial",24.0f);
auto sendSocketItem=MenuItemLabel::create(sendSocketLabel,[this](Ref* ref)
{
//发送数据
client->send("LiuJunLiang");
});
sendSocketItem->setPosition(Vec2(size.width/2,size.height/2-50));
menu->addChild(sendSocketItem);
auto emitSocketLabel=Label::create("emitSocket","Arial",24.0f);
auto emitSocketItem=MenuItemLabel::create(emitSocketLabel,[this](Ref*)
{
//自定义侦听事件,发射信号
client->emit("log","helloCocos");
});
emitSocketItem->setPosition(size.width/2,size.height/2-100);
menu->addChild(emitSocketItem);
return true;
}
void HelloWorld::onConnect(cocos2d::network::SIOClient* client)
{
log("%s is opening",client->getTag());
}
void HelloWorld::onMessage(cocos2d::network::SIOClient* client,const std::string& data)
{
log("%s send message:%s",client->getTag(),data.c_str());
}
void HelloWorld::onClose(cocos2d::network::SIOClient* client)
{
log("%s is closing",client->getTag());
}
void HelloWorld::onError(cocos2d::network::SIOClient* client,const std::string& data)
{
log("%s make error:%s",client->getTag(),data.c_str());
}
- Cocos2d-x3.8.1网络编程(Socket)
- Cocos2d-x3.8.1网络编程(HTTP)
- Cocos2d-x3.8.1网络编程(WebSocket)
- cocos2d-Lua10网络Http&Socket编程
- cocos2d-x3.2 Socket传输Json字符串
- cocos2d-x3.2与服务端框架Firefly的网络编程(初级网络通讯)
- cocos2d-x3.2与服务端框架Firefly的网络编程(深入网络通讯)
- cocos2d-x3.0之请求网络(php服务器)
- 网络编程---Socket编程
- 网络编程:Socket编程
- 网络编程(Socket编程)
- Cocos2d-x3.8.1加载csb文件
- Cocos2d-x3.8.1暂停与继续游戏
- Cocos2d-x3.8.1解析Json文件
- Cocos2d-x3.8.1制作愤怒的小鸟
- cocos2d-x网络编程
- cocos2d-x网络编程
- Cocos2d-x_HTTP网络编程
- spark Reparation和Coalesce 区别
- spring注解的好处
- 1.开发模式接入(微信公众号开发实战)
- JMS基础
- Eclipse中关于maven配置文件setting的一点学习
- Cocos2d-x3.8.1网络编程(Socket)
- hrbust1073并查集应用
- Oracle数据导出与导入
- Java新特性:接口新特性
- nyoj 三个水杯
- Matlab中fileter和conv的区别及卷积的计算方法
- oracle表空间的建立
- Aria2 & YAAW 使用说明
- JMS消息传输机制