码迷,mamicode.com
首页 > 其他好文 > 详细

配置跨服

时间:2015-06-02 11:32:12      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

配置跨服

——蔡剑彬 C++服务器开发工程师 caijianbin668943@163.com

一、境配置

硬件境:X86 PC

境:Windows7,VS2010

二、配置步

1将编译后的GameServer和GateServer拷贝一份,并分别将其命名为GameServer_cross和GateServer_cross;

2修改GameServer_cross\data\cross下面的文件:CombinServersMap.txt和LogicServersIP.txt,修改方式如下:

CombinServersMap.txt:用于记录需要接到跨服服器的原服器ID以及原服对应的合服后的服器ID,因终连上跨服服器的服器是合服后的服器(如果有合服的),于没有合服的服器,两个ID都填写一即可(注意不要有空行!);

LogicServersIP.txt:将需要接到跨服服器的服器ID、IP以及听其他服器的端口,记录在上面,跨服服器会在启候将和记录在上面的服接起来,断开了会重连;

3将crosscfg.ini放到GameServer_cross\win32,配置文件内容如下:

[GameConfig]

;是否是跨服服器,1是,0否

iscrossserver = 1

;跨服服器的接网络监听端口

crossserver_port = 90109

;跨服服器最大接数,即最大可接几个逻辑服crossserver_count = 100

;跨服服器接受冲区大小

crossserver_recsize = 102400

;跨服服冲大小

crossserver_sendsize = 2097152

;跨服服络层休眠时间ms

crossserver_sleeptime = 20

;跨服服器网关ipcross_gateip = 127.0.0.1

;跨服服器网关端开放port

cross_gateport = 20100

(注意:尽量将跨服服器的端口都在20000以后,id都在2000以后)

4修改GameServer_cross\win32\ServerConfig.ini,将server_id修改2000,将Client_listen_port修改20100,将listen_port修改20101

5、修改GateServer_cross\Win32\ServerConfig.ini,将server_id修改2000,将Client_listen_port修改20100,将gameserverport修改20101

三、实现原理

1、跨服服务器的代码与普通逻辑服务器的代码是一致的,只是根据GameServe_cross\Wind2\crosscfg.ini里面的iscrossserver项来决定启动后走分支与普通服务器的是否一样;

2、在跨服服务器启动时,会读取两个文件,CombinServersMap.txt和LogicServersIP.txt。其中,LogicServersIP.txt是最重要的,因为它记录了跨服服务器最终连接哪些服务器。但这些服务器有些有可能是合服服务器,所以就需要CombinServersMap.txt将所有服务器对应的合服服务器id告诉跨服服务器。这样便能知道那些服可以参与跨服,以及跨服服务器实际上连接的是那些服务器;

3、角色跨服时,其实是客户端获取了跨服服务器的网关服务器的IP和端口号后,断开与当前服务器的连接,转而连接跨服服务器。相当于重新登录于一个新的服务器,但不同的是这次登录是不需要验证的;

4、跨服服务器会记录所有连接的服务器,如果角色有数据需要保存,那么就根据这个角色的ID(该ID与原服务器的ID挂钩),将原服务器的ID解析出来,接着在链表中寻找相应的服务器,最后调用该服务器的数据库服务器,将数据保存起来;

5、退出跨服服务器时,客户端获取了原服务器的IP和端口号后,与跨服服务器断开连接,重新连接到原服务器上。

配置跨服

标签:

原文地址:http://my.oschina.net/chrisforbt/blog/423727

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!