Skip to content

Latest commit

 

History

History
78 lines (61 loc) · 2.85 KB

TO-DO.md

File metadata and controls

78 lines (61 loc) · 2.85 KB

GoPlay Server Framework

TO-DO

Client

  • ConnectedDisconnected 事件
  • Recv 线程和 Send 线程的异常保护
  • 无法连接时的错误处理
  • Recv 阻塞,导致 Disconnect 调用无法结束
  • HeartBeat 实现
  • AddListener 改为监听任意包,而不仅仅是 Push
  • 增加 WaitFor 方法,相当于 AddListenerOnce ,但是利用 Task<T> 返回
  • AddListener 的回调增加 PackagePackage<T> 的支持
  • AddListener 的回调增加 MainThreadActionRunner,让回调在主线程中运行
  • 增加断线重连的支持

Server

  • Recv 线程和 Send 线程的异常保护
  • host增加*的支持
  • 新客户端连接事件
  • 客户端断线事件
  • Processor 增加客户端连接和断线的回调
  • Kick 方法测试
  • Stop 测试
  • OnRecv 改为直接调用Processor而不是Router
  • HeartBeat 实现

Cluster

Cluster-Master

  • [] 必须先启动,用于管理和缓存服务器列表
  • [] 其他Cluster服务器启动时,都要先连接Master服务器,并报告以下的信息
    • 服务器名称
    • 服务器类型
    • 服务器支持的Route列表
    • 服务器权重
  • [] 连接所有Cluster服务器,并确保他们的活跃,如果有服务器失去连接,则更新列表,并推送给列表中的所有活跃服务器
  • [] 提供的Route
    • 获取服务器列表
    • 推送服务器列表更新

Cluster-Gate

  • [] 从Master获取服务器列表
  • [] 提供的Route
    • 根据权重分配Connector的IP和端口

Cluster-Connector

  • [] Session 数据缓存
    • 当客户端连接时,建立缓存
    • 当客户端失去连接时,删除缓存
    • 当转发请求的ResponsePushSession数据时,更新缓存
  • [] 连接所有的Logic服务器
    • 缓存Route服务器的映射和权重列表
    • 利用映射列表,处理HandShake
    • 把客户端的请求根据映射和权重列表,转发给对应的Logic服务器
    • Logic服务器的ResponsePush转发给对应的客户端
  • [] 客户端处理
    • 给客户端的Session填上ClientGuid,用于后续转发的映射
    • 当有新客户端连接/断开连接时,更新ClientGuid列表,并推送给所有的Logic服务器

Cluster-Logic

  • [] 缓存所有ClientGuidConnector的映射表

Cluster-Processor

  • [] 对Client的封装,提供远程Processor