中小型手机棋牌网络游戏服务端架构设计(带源码)

承接自己[《中小型棋牌类网络游戏服务端架构》]博文,用Golang实现基础架构逻辑后,准备再次谈谈我的想法。如果阅读起来感觉晦涩难懂,那就不妨直接看[源码]#Network包含Server,Client,RPC三个组件。#Error#ServerProxy(代理), Manager(管理), Login(登陆), Game(游戏), DB(数据库代理)。
摘要由CSDN通过智能技术生成

承接自己《中小型棋牌类网络游戏服务端架构》博文,用Golang实现基础架构逻辑后,准备再次谈谈我的想法。

已实现的逻辑与前文描述有几点不同:

  1. Gateway更名为Proxy,DBProxy更名为DB
  2. Proxy同时持有与(Login, Game)不同类型服务器的多条连接
  3. DB不参与负载均衡,考虑是棋牌数据库负载不高,即使需要扩展多个也可以通过不同服务器配置指向不同的DB来扩展
  4. 消息头格式以源码实现的为主
  5. 心跳机制在不考虑客户端的前提下,服务端会主动发送心跳包,但并非总是特定间隔时间发送

如果阅读起来感觉晦涩难懂,那就不妨直接看源码

Network

包含Server,Client,RPC三个组件。

Server

网络服务端组件,持有监听套接字,管理所有客户端连接(map存储,value可以存储自定义值),一个客户端连接到来起一个Goroutines接收消息,调用Stop将等待所有Goroutines退出才返回,只通知业务逻辑“收到消息”“连接关闭”两种事件。

Client

网络客户端组件,持有与服务端的连接,实现补偿策略重连机制,只通知业务逻辑“客户端连接成功”“客户端收到消息”两种事件。

RPC

远程过程调用

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值