与PHP通信

游戏服务器中,与平台的通信是必不可少的。

使用一个web中间层与两端通信,php脚本控制,简单易用,让游戏服务器专心干自己的事情。

1.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);
		}
	}

2.C++部分:

与普通服务器间通信类似,这里使用的是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)
	{
	}

详见以下三个文件:



3.启动脚本

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


你可能感兴趣的:(服务器,手游,NeL)