逻辑服状态监听
介绍
BrokerClientListener 接口用于监听逻辑服(游戏对外服、游戏逻辑服)的上线、下线状态。
通过该接口,我们可以实时的知道各逻辑服的情况。 如有需要,可以做记录,并将数据显示在 GM 后台的页面上。 除此之外,还有很多应用场景,这里就不过多介绍了。
如何使用
- code 4,添加 BrokerClientListener,用于监听各逻辑服的状态。
 - code 7,游戏对外服上线时,将会触发该方法。
 - code 12,游戏对外服下线时,将会触发该方法。
 - code 17,游戏逻辑服上线时,将会触发该方法。
 - code 22,游戏逻辑服下线时,将会触发该方法。
 
public class GameManagerLogicServer extends AbstractBrokerClientStartup {
   ...
    private void extractedBrokerClientListener(BrokerClientBuilder builder) {
        builder.addListener(new BrokerClientListener() {
            @Override
            public void onlineExternal(BrokerClientModuleMessage otherModuleMessage, BrokerClient client) {
                log.info("Online - ExternalServer {} {} {}", otherModuleMessage.getTag(), otherModuleMessage.getId(), otherModuleMessage);
            }
            @Override
            public void offlineExternal(BrokerClientModuleMessage otherModuleMessage, BrokerClient client) {
                log.info("Offline - ExternalServer {} {}", otherModuleMessage.getTag(), otherModuleMessage.getId());
            }
            @Override
            public void onlineLogic(BrokerClientModuleMessage otherModuleMessage, BrokerClient client) {
                log.info("Online - GameLogicServer {} {}", otherModuleMessage.getTag(), otherModuleMessage.getId());
            }
            @Override
            public void offlineLogic(BrokerClientModuleMessage otherModuleMessage, BrokerClient client) {
                log.info("Offline - GameLogicServer {} {}", otherModuleMessage.getTag(), otherModuleMessage.getId());
            }
        });
    }
    @Override
    public BrokerClientBuilder createBrokerClientBuilder() {
        BrokerClientBuilder builder = BrokerClient.newBuilder();
        builder.appName("GM-LogicServer");
        extractedBrokerClientListener(builder);
        return builder;
    }
}