游戏服务器中,与平台的通信是必不可少的。
使用一个web中间层与两端通信,php脚本控制,简单易用,让游戏服务器专心干自己的事情。
使用nel_message.php,与游戏服务器通信。
该结构提供与游戏服务器通信的基础工具,如通信基类CCallbackClient、消息类CMesssage。
代码位置:code\EVA\tools\server\www\login
class CLoginServiceWeb extends CCallbackClient { function login($userId, $token) { $msg = new CMessage; $msg->setName("LG"); $msg->serialUint32($userId); $msg->serialString($token); return parent::sendMessage($msg); } }
与普通服务器间通信类似,这里使用的是CNelCallbackServerAdaptor
std::auto_ptr<ICallbackServerAdaptor> _CallbackServer; void getCallbakArray(NLNET::TCallbackItem *&arrayPtr, uint32 &arraySize) { static NLNET::TCallbackItem callbackArray[] = { { "LG", CLoginServiceWebItf::cb_WebLogin }, }; } static void cb_WebLogin (NLNET::CMessage &message, NLNET::TSockId from, NLNET::CCallbackNetBase &netbase) { }
Module需要使用脚本启动,在相应服务器的配置文件中增加启动命令:
LSWebPort = 30001; StartCommands = { // create the login service module and open the web interface "moduleManager.createModule LoginService ls webPort="+LSWebPort, };
至此,可实现 客户端->第三方平台->外网web服务器->内部服务器组 之间的消息传递。
传送门:http://blog.csdn.net/li9chuan/article/details/38387061