Skip to main content

逻辑服状态监听

介绍

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;
}
}