• GoNet项目学习笔记(二)


    二)Game Server模块启动分析

    主函数入口位于src/agent/main.go,启动流程为:

    1. 按顺序初始化导入模块cfg;geoip, db模块等等…

    2. 启动HUB客户端,连接HUB Server

    3. 启动signal routine 

        1) 处理SIGHUP信号,加载程序配置
        2) 处理SIGTERM信号,程序退出时关闭并等待所有GS的Agent退出

    4. 启动Sys routine

        1) 处理系统消息

        2) 定期强制内存回收

    5. 启动统计客户端,连接到Stats Server。

    6. 启动TCP监听,接收客户端(Player)连接,每个客户端用一个routine处理。

    流程图:

    上图中,Session队列用来接收HubServer转发过来的其它GameServer的消息。GS在启动时HubClient会与HS建立连接同时守护该连接

    (src/agent/hub_client/hun_client.go ->_receiver()),接收HS发过来的消息。当HubClient收到HS的消息时(_receiver()函数),会根据IPCObject查找到对应的Session队列(src/agent/hub_client/hun_client.go ->_deliver())。

  • 相关阅读:
    pylint
    Cygwin安装与配置
    Spring的配置文件
    网络传输测试软件
    MINA快速传输文件
    Jar包下载
    shutdown彻底关闭tomcat,以及多线程关闭
    Git使用
    例说数学学习中的四基
    求等差数列前n项和S_n的最值
  • 原文地址:https://www.cnblogs.com/code-review/p/4646745.html
Copyright © 2020-2023  润新知