Map<Integer, ServerInfo> map = servers.get(ServerType.valueof(serverInfo.getType())); if (map == null) { map = new ConcurrentHashMap<>(); servers.put(ServerType.valueof(serverInfo.getType()), map); ServerInfo info = map.get(serverInfo.getId()); if (info == null) { info = new ServerInfo(); map.put(serverInfo.getId(), info); info.setHttpPort(serverInfo.getHttpport()); info.setId(serverInfo.getId()); info.setIp(serverInfo.getIp()); info.setMaxUserCount(serverInfo.getMaxUserCount()); info.setName(serverInfo.getName()); info.setOnline(serverInfo.getOnline()); info.setPort(serverInfo.getPort()); info.setType(serverInfo.getType()); info.setWwwip(serverInfo.getWwwip()); info.onIoSessionConnect(session); info.setFreeMemory(serverInfo.getFreeMemory()); info.setTotalMemory(serverInfo.getTotalMemory()); info.setVersion(serverInfo.getVersion());
/** * <code>required .ServerInfo serverInfo = 2;</code> * * <pre> *服务器信息 * </pre> */ public Builder mergeServerInfo(com.jzy.game.message.ServerMessage.ServerInfo value) { if (serverInfoBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && serverInfo_ != com.jzy.game.message.ServerMessage.ServerInfo.getDefaultInstance()) { serverInfo_ = com.jzy.game.message.ServerMessage.ServerInfo.newBuilder(serverInfo_).mergeFrom(value).buildPartial(); } else { serverInfo_ = value; } onChanged(); } else { serverInfoBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**
if (info.getType() < 100 && info.getType() != ServerType.HALL.ordinal()) { // 游戏服从101开始定义 ServerType serverType = ServerType.valueof(info.getType()); ServerInfo server = getGameServerInfo(serverType, info.getId()); if (server == null) { server = new ServerInfo(); server.setId(info.getId()); server.setIp(info.getIp()); server.setPort(info.getPort()); server.setOnline(info.getOnline()); server.setMaxUserCount(info.getMaxUserCount()); server.setName(info.getName()); server.setHttpPort(server.getHttpPort()); server.setState(info.getState()); server.setType(info.getType()); server.setWwwip(info.getWwwip()); serverMap.get(serverType).put(info.getId(), server);
public Builder mergeFrom(com.jzy.game.message.ServerMessage.ServerInfo other) { if (other == com.jzy.game.message.ServerMessage.ServerInfo.getDefaultInstance()) return this; if (other.hasId()) { setId(other.getId()); if (other.hasIp()) { bitField0_ |= 0x00000002; ip_ = other.ip_; onChanged(); if (other.hasType()) { setType(other.getType()); if (other.hasPort()) { setPort(other.getPort()); if (other.hasState()) { setState(other.getState()); if (other.hasOnline()) { setOnline(other.getOnline()); if (other.hasMaxUserCount()) { setMaxUserCount(other.getMaxUserCount()); if (other.hasHttpport()) { setHttpport(other.getHttpport()); if (other.hasName()) { bitField0_ |= 0x00000100;
ServerInfo.Builder info = ServerInfo.newBuilder(); info.setId(baseServerConfig.getId()); info.setIp("");
/** * 构建服务器更新注册信息 * * @param minaServerConfig * @return */ public ServerRegisterRequest buildServerRegisterRequest(MinaServerConfig minaServerConfig) { ServerRegisterRequest.Builder builder = ServerRegisterRequest.newBuilder(); ServerInfo.Builder info = ServerInfo.newBuilder(); info.setId(minaServerConfig.getId()); info.setIp(minaServerConfig.getIp()); info.setMaxUserCount(1000); info.setOnline(UserSessionManager.getInstance().getOlineCount()); info.setName(minaServerConfig.getName()); info.setState(ServerState.NORMAL.getState()); info.setType(minaServerConfig.getType().getType()); info.setWwwip(""); info.setPort(minaServerConfig.getPort()); info.setHttpport(minaServerConfig.getHttpPort()); info.setFreeMemory(SysUtil.freeMemory()); info.setVersion(minaServerConfig.getVersion()); info.setTotalMemory(SysUtil.totalMemory()); builder.setServerInfo(info); return builder.build(); }
/** * <code>optional .ServerInfo serverInfo = 2;</code> * * <pre> *返回服务器信息,状态,在线人数在集群服设置 * </pre> */ public Builder mergeServerInfo(com.jzy.game.message.ServerMessage.ServerInfo value) { if (serverInfoBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && serverInfo_ != com.jzy.game.message.ServerMessage.ServerInfo.getDefaultInstance()) { serverInfo_ = com.jzy.game.message.ServerMessage.ServerInfo.newBuilder(serverInfo_).mergeFrom(value).buildPartial(); } else { serverInfo_ = value; } onChanged(); } else { serverInfoBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**
/** * 更新可用网关服务器信息 * * @param info */ public void updateGateServerInfo(ServerMessage.ServerInfo info) { ServerInfo serverInfo = getBydr2GateClient().getServers().get(info.getId()); if (serverInfo == null) { serverInfo = getServerInfo(info); if(getBydr2GateClient() instanceof Bydr2GateClient){ Bydr2GateClient service=(Bydr2GateClient)getBydr2GateClient(); service.addTcpClient(serverInfo, NetPort.GATE_GAME_PORT,service.new MutilConHallHandler(serverInfo, service)); // TODO 暂时,网关服有多个tcp端口 }else{ getBydr2GateClient().addTcpClient(serverInfo, NetPort.GATE_GAME_PORT); } } else { serverInfo.setIp(info.getIp()); serverInfo.setId(info.getId()); serverInfo.setPort(info.getPort()); serverInfo.setState(info.getState()); serverInfo.setOnline(info.getOnline()); serverInfo.setMaxUserCount(info.getMaxUserCount()); serverInfo.setName(info.getName()); serverInfo.setHttpPort(info.getHttpport()); serverInfo.setWwwip(info.getWwwip()); } getBydr2GateClient().getServers().put(info.getId(), serverInfo); }
@Override public void sessionOpened(IoSession session) { super.sessionOpened(session); // 向网关服注册session ServerRegisterRequest.Builder builder = ServerRegisterRequest.newBuilder(); ServerMessage.ServerInfo.Builder info = ServerMessage.ServerInfo.newBuilder(); info.setId(getMinaClientConfig().getId()); info.setIp(""); info.setMaxUserCount(1000); info.setOnline(1); info.setName(getMinaClientConfig().getName()); info.setState(ServerState.NORMAL.getState()); info.setType(getMinaClientConfig().getType().getType()); info.setWwwip(""); info.setTotalMemory(SysUtil.totalMemory()); info.setFreeMemory(SysUtil.freeMemory()); ScriptManager.getInstance().getBaseScriptEntry().executeScripts(IGameServerCheckScript.class, script -> script.buildServerInfo(info)); builder.setServerInfo(info); session.write(new IDMessage(session, builder.build(), 0)); }
/** * 消息转换 * @author JiangZhiYong * @QQ 359135103 * 2017年8月29日 下午2:21:52 * @param info * @return */ private ServerInfo getServerInfo(ServerMessage.ServerInfo info) { ServerInfo serverInfo = new ServerInfo(); serverInfo.setIp(info.getIp()); serverInfo.setId(info.getId()); serverInfo.setPort(info.getPort()); serverInfo.setState(info.getState()); serverInfo.setOnline(info.getOnline()); serverInfo.setMaxUserCount(info.getMaxUserCount()); serverInfo.setName(info.getName()); serverInfo.setHttpPort(info.getHttpport()); serverInfo.setWwwip(info.getWwwip()); serverInfo.setFreeMemory(info.getFreeMemory()); serverInfo.setTotalMemory(info.getTotalMemory()); serverInfo.setVersion(info.getVersion()); return serverInfo; }
/** * 更新大厅服务器信息 * * @param info */ public void updateHallServerInfo(ServerMessage.ServerInfo info) { ServerInfo serverInfo = serverMap.get(info.getId()); if (serverInfo == null) { serverInfo = getServerInfo(info); addTcpClient(serverInfo, NetPort.GATE_GAME_PORT, new MutilConHallHandler(serverInfo, this)); } else { serverInfo.setIp(info.getIp()); serverInfo.setId(info.getId()); serverInfo.setPort(info.getPort()); serverInfo.setState(info.getState()); serverInfo.setOnline(info.getOnline()); serverInfo.setMaxUserCount(info.getMaxUserCount()); serverInfo.setName(info.getName()); serverInfo.setHttpPort(info.getHttpport()); serverInfo.setWwwip(info.getWwwip()); } serverMap.put(info.getId(), serverInfo); }
@Override public void sessionOpened(IoSession session) { super.sessionOpened(session); // 向大厅服注册session TODO ServerRegisterRequest.Builder builder = ServerRegisterRequest.newBuilder(); ServerMessage.ServerInfo.Builder info = ServerMessage.ServerInfo.newBuilder(); info.setId(getMinaClientConfig().getId()); info.setIp(""); info.setMaxUserCount(1000); info.setOnline(1); info.setName(getMinaClientConfig().getName()); info.setState(ServerState.NORMAL.getState()); info.setType(getMinaClientConfig().getType().getType()); info.setWwwip(""); ScriptManager.getInstance().getBaseScriptEntry().executeScripts(IGameServerCheckScript.class, script -> script.buildServerInfo(info)); builder.setServerInfo(info); session.write(new IDMessage(session, builder.build(), 0)); }
/** * 构建服务器更新注册信息 * * @param minaServerConfig * @return */ public ServerRegisterRequest buildServerRegisterRequest(MinaClientConfig minaClientConfig) { ServerRegisterRequest.Builder builder = ServerRegisterRequest.newBuilder(); ServerMessage.ServerInfo.Builder info = ServerMessage.ServerInfo.newBuilder(); info.setId(minaClientConfig.getId()); info.setIp(""); info.setMaxUserCount(1000); info.setOnline(1); info.setName(minaClientConfig.getName()); info.setState(ServerState.NORMAL.getState()); info.setType(minaClientConfig.getType().getType()); info.setWwwip(""); builder.setServerInfo(info); return builder.build(); }
public Builder toBuilder() { return newBuilder(this); }
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder(com.jzy.game.message.ServerMessage.ServerInfo prototype) {
/** * <code>optional string name = 9;</code> * * <pre> *名字 * </pre> */ public Builder clearName() { bitField0_ = (bitField0_ & ~0x00000100); name_ = getDefaultInstance().getName(); onChanged(); return this; } /**
/** * <code>optional string wwwip = 10;</code> * * <pre> * 外网地址 * </pre> */ public Builder clearWwwip() { bitField0_ = (bitField0_ & ~0x00000200); wwwip_ = getDefaultInstance().getWwwip(); onChanged(); return this; } /**
/** * <code>optional string ip = 2;</code> * * <pre> * 内网地址 * </pre> */ public Builder clearIp() { bitField0_ = (bitField0_ & ~0x00000002); ip_ = getDefaultInstance().getIp(); onChanged(); return this; } /**
public static Builder newBuilder(com.jzy.game.message.ServerMessage.ServerInfo prototype) { return newBuilder().mergeFrom(prototype); } public Builder toBuilder() { return newBuilder(this); }
private ServerInfo getServerInfo(ServerMessage.ServerInfo info) { ServerInfo serverInfo = new ServerInfo(); serverInfo.setIp(info.getIp()); serverInfo.setId(info.getId()); serverInfo.setPort(info.getPort()); serverInfo.setState(info.getState()); serverInfo.setOnline(info.getOnline()); serverInfo.setMaxUserCount(info.getMaxUserCount()); serverInfo.setName(info.getName()); serverInfo.setHttpPort(info.getHttpport()); serverInfo.setWwwip(info.getWwwip()); return serverInfo; }