专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

coc的服务理念_CSS学习

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/4 5:36:22       共计:3566 浏览

coc的服务理念?

coc中的功能,大致分为以下几个部分

1.登陆

2.部落相关功能

3.聊天(“世界"聊天,部落内部聊天)

4.邮件

5.搜索对战玩家

6.排行榜

从需求上来出发,由于是全球同服,所以服务器端可以用传统的社区类flash游戏架构,假设采用的是长连接(短连接思路架构大致相同)

1.登陆:

传统滚服类游戏的登陆模式是,客户端本地配置所有服务器的ip与port信息(或是从网关服务器获取服务器信息),玩家选择对应服务器,然后客户端与之连接通信,每一个游戏服务器直连一个数据库,

一个游戏服务器就是一个游戏的世界

社区类游戏的登陆模式是,客户端通过hash算法得到其所在服务器id,然后去网关服务器中获取对应游戏服务器信息,(假设我们后台有n组游戏服务器分别用s0~s(n-1)来代替),

在与服务器通信时hash自己的用户名(hash算法可以使用魔兽的hash算法),

获得hash值,由于用户名每个玩家总是不同,所以此hash值可以认为是全局唯一,可以当做玩家id,用得到的hash值除以n取余,再得到一个值v,这个值v就是此玩家所在服务器的编号,如hash后的

值为56547,游戏服务器有10组,依次编号为s1~s10,取余后得到7,那么此玩家就在s7服上,然后从客户端本地读出s7服的ip与port,与之连接,获取玩家数据,连接后,玩家的数据更改也由此

服务器处理

架构如下

client

| \

| gate_server

| /

---------------------------------------------------------

| | |

server1 server2 server3 .....

| | |

db1 db2 db3

2.部落相关功能

部落信息的存放与获取与玩家信息类似,通过hash(部落名)%部落服务器数量,获取部落所在部落服务器id,然后从此服务器获取部落信息

3.聊天

“世界”聊天

coc中的世界聊天每个国家是不在一起的,并且一个国家中也分多组聊天服,有时有我和同事一起在世界中说话,但彼此互相无法看到,对于此种聊天的架构,可以有多种可能,具体视需求来定,

在这里假设是每个国家有多条聊天线路,不同聊天线路中的玩家互相不可见

原理同登陆流程,具体实现逻辑如下

1.聊天服务器在启动时注册自己(所在国家,服务器id)到网关服务器中

2.玩家在登陆时跟据其登陆ip获取其所在国家,跟据其所在国家和用户名去网关服务中获取应该连接的聊天服务器

3.聊天网关服务器收到消息后hash用户名,取余得到其对应的聊天服务器id,

4.把此聊天服务器的信息发送给客户端

架构如下

client

| \

| gate_server

| /

---------------------------------------------------------

| | |

chat_server1 chat_server2 chat_server3 .....

部落内部聊天

由于部落中玩家数量并不多,所以个人认为没有必要再分离出单独的部落聊天服务器,直接由部落服务器处理就可以了

1.客户端把聊天内容发给其部落所在服务器,部落服务器收到后获取其部落中所有玩家名,hash(名)%游戏服务器数量后获取每个玩家所在服务器信息,然后向其发送聊天消息,由对应服务器再

向每个客户端发送聊天信息

4.邮件

与玩家信息类似

5.搜索对战玩家

游戏服务器中配置所有搜索服务器的ip与port信息,同样hash取余后获取每个玩家对应的搜索服务器id,与之连接,搜索流程如下

1.客户端向游戏服中发搜索消息

2.游戏服向搜索服务器发搜索消息

3.搜索服务器收到消息后随机一个游戏服务器向其发消息

4.游戏服务器收到消息后,随机一个可攻击的目标玩家,把玩家的名子返回给搜索服务器

5.搜索服务器把玩家名返回游戏服务器

6.游戏服务器hash(目标玩家名)取余后得到目标玩家所在服务器

7.游戏服务器向目标玩家所在服务器发消息获取目标玩家信息

8.游戏服务器把目标玩家信息返回给客户端

6.排行榜

关于排行榜的做法,可以参考云风在陌陌争霸中的思路,地址:http://blog.codingnow.com/2014/03/mmzb_db_2.html

统上来看,最后服务器的架构是这样子的

client1 client2 ...

| \ / |

| gate_server... |

| |

chat_server1 chat_server2 ...

mail_server1 mail_server2 ...

clan_server1 clan_server2 ...

game_server1 ------- game_server2 ...

/ | \ / | \

db1 | rank_server | db2

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:cad窗口垂直平铺的快捷键是什么_CSS学习 | ·下一条:有哪些好玩的休闲类游戏_CSS学习

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有