• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

JMEGame: 使用JMEngine编写网游服务器框架,包含如下内容 消息分发模块 游戏事件模块 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

JMEGame

开源软件地址:

https://gitee.com/JimmyH/JMEGame

开源软件介绍:

#JMEGame

使用JMEngine编写网游服务器框架,包含如下内容
所有测试代码省略一下代码片段

while (1){	string cmd;	cin >> cmd;	if (!cmd.compare("quit"))	{		break;	}}

消息分发模块

DispatchHandler.h#include "JME_Dispatcher.h"typedef JMEngine::game::JME_Dispatcher<int, google::protobuf::Message*> MessageDispatcher;class DispatchHandler : 	public MessageDispatcher{public:	static void init();private:	static void requestLogin(int net, const google::protobuf::Message* params);};DispatchHandler.cpp #include "DispatchHandler.h"void DispatchHandler::init(){	regMessageHandler(10002, boost::bind(&DispatchHandler::requestLogin, _1, _2));}void DispatchHandler::requestLogin(int net, const google::protobuf::Message* params){}

游戏事件模块

main.cpp#include "JME_GameEventCenter.h"void cb3(const string& evt, JMEngine::game::GameEventCenter<string>::Observer::EventConnectorPtr conn){	std::cout << "event [ " << evt << " ] callback 3" << std::endl; 	conn->disconnect(); }int main(){	auto game_mgr = new JMEngine::game::GameEventCenter<string>;	auto cb1 = [](const string& evt){ std::cout << "event [ " << evt << " ] callback 1" << std::endl; };	auto cb2 = [](const string& evt){ std::cout << "event [ " << evt << " ] callback 2" << std::endl; };		game_mgr->regEventHandler("test", cb1);	game_mgr->regEventHandler("test", cb2);		JMEngine::game::GameEventCenter<string>::Observer::EventConnectorPtr conn(new JMEngine::game::GameEventCenter<string>::Observer::EventConnector);	game_mgr->regEventHandler("test", boost::bind(cb3, _1, conn), conn);		game_mgr->eventCallback("test");	game_mgr->removeEventHandler("test", cb1);	game_mgr->eventCallback("test");	game_mgr->removeEventHandler("test", cb2);	game_mgr->eventCallback("test");		return 0;}run result:event [ test ] callback 1event [ test ] callback 2event [ test ] callback 3event [ test ] callback 2

时间相关函数

定时器模块

main.cpp #include "JME_TimerTask.h"void cb4(boost::shared_ptr<boost::asio::deadline_timer> dt, const string& para){	LOGT("%s callback", para);};int main(){	LOGT("==============================");	JMEngine::game::JME_TimerTaskCenter::callbackFromNow(20, boost::bind(cb4, _1, "callbackFromNow"));	JMEngine::game::JME_TimerTaskCenter::callbackAtTime(time(NULL) + 20, boost::bind(cb4, _1, "callbackAtTime"));	JMEngine::game::JME_TimerTaskCenter::callbackByInterval(5, boost::bind(cb4, _1, "callbackByInterval"));	return 0;}run result:[2015-Nov-05 11:35:24] [f:\work\jmengine\testservers\client\src\main.cpp:101:main:00F88670] [TRACE] ==============================[2015-Nov-05 11:35:29] [f:\work\jmengine\testservers\client\src\main.cpp:79:cb4:00F86258] [TRACE] callbackByInterval callback[2015-Nov-05 11:35:34] [f:\work\jmengine\testservers\client\src\main.cpp:79:cb4:00F86258] [TRACE] callbackByInterval callback[2015-Nov-05 11:35:39] [f:\work\jmengine\testservers\client\src\main.cpp:79:cb4:00F86258] [TRACE] callbackByInterval callback[2015-Nov-05 11:35:44] [f:\work\jmengine\testservers\client\src\main.cpp:79:cb4:00F86258] [TRACE] callbackAtTime callback[2015-Nov-05 11:35:44] [f:\work\jmengine\testservers\client\src\main.cpp:79:cb4:00F86258] [TRACE] callbackFromNow callback[2015-Nov-05 11:35:44] [f:\work\jmengine\testservers\client\src\main.cpp:79:cb4:00F86258] [TRACE] callbackByInterval callback

共享内存


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap