Ejemplo n.º 1
0
 def requestServerInfo(self):
     if self.isGateRouteConnect():
         GateRouteServerConnInfoReq = helper.createProto(900001)
         self.send(
             msgUtils.packMonitorMsg(900001, GateRouteServerConnInfoReq))
     else:
         GetGameServerInfoReq = helper.createProto(900013)
         self.send(msgUtils.packMonitorMsg(900013, GetGameServerInfoReq))
Ejemplo n.º 2
0
 def onConnect(self):
     if self.type == helper.C_GATE:
         RegisterDebugA2G_R = helper.createProto(500003)
         RegisterDebugA2G_R.id = config.SERVER_ID
         RegisterDebugA2G_R.type = 5
         self.send2Gate(500003, RegisterDebugA2G_R, self.onRegister)
     elif self.type == helper.C_ROUTE:
         RegisterDebugA2R_R = helper.createProto(503003)
         RegisterDebugA2R_R.id = config.SERVER_ID
         RegisterDebugA2R_R.type = 5
         self.send2Route(0, 0, 0, 1, 0, 503003, RegisterDebugA2R_R,
                         self.onRegister)
     logging.info("成功连接{0},开始请求注册{0}".format(self.info()))
Ejemplo n.º 3
0
 def notifyNewServer(self, conn):
     for connect in self.connects.values():
         if connect != conn:
             RegisterServerReq = helper.createProto(900003)
             conn.setServerInfoProto(RegisterServerReq)
             connect.send(msgUtils.packMonitorMsg(900003,
                                                  RegisterServerReq))
Ejemplo n.º 4
0
 def onGetMonitorServerInfo(self, data):
     GetMonitorServerInfoRes = helper.createProto(900016)
     GetMonitorServerInfoRes.connectedServerNum = self.server.getConnectedServerNum(
     )
     GetMonitorServerInfoRes.registeredServerNum = self.server.getRegistedServerNum(
     )
     GetMonitorServerInfoRes.monitorVersion = monitorVersion.version
     for connect in self.server.getAllGateRouteConnects():
         gateRouteInfo = GetMonitorServerInfoRes.gateRouteServerInfo.add()
         connect.setServerInfoProto(gateRouteInfo.serverInfo)
         gateRouteInfo.connInfos.playerLinkCount = connect.connectedServersInfo.playerLinkCount
         gateRouteInfo.connInfos.playerCount = connect.connectedServersInfo.playerCount
         gateRouteInfo.connInfos.serverLinkCount = connect.connectedServersInfo.serverLinkCount
         gateRouteInfo.connInfos.serverCount = connect.connectedServersInfo.serverCount
         for serverInfo in connect.connectedServersInfo.serverInfo:
             connInfo = gateRouteInfo.connInfos.serverInfo.add()
             connInfo.id = serverInfo.id
             connInfo.state = serverInfo.state
             connInfo.type = serverInfo.type
             connInfo.subType = serverInfo.subType
             connInfo.url = serverInfo.url
             connInfo.siteId = serverInfo.siteId
     for connect in self.server.getAllNormalConnects():
         normalServerInfo = GetMonitorServerInfoRes.normalServerInfo.add()
         connect.setServerInfoProto(normalServerInfo.serverInfo)
         normalServerInfo.gameServerstate = connect.gameServerstate
         normalServerInfo.dataBaseState = connect.dataBaseState
     self.send(msgUtils.packMonitorMsg(900016, GetMonitorServerInfoRes))
Ejemplo n.º 5
0
def unpackMonitorMsg(data):
    msg = MsgData()
    msg.code = int.from_bytes(data[0:4], byteorder='big')
    msg.len = int.from_bytes(data[4:8], byteorder='big')
    msg.data = helper.createProto(msg.code)
    msg.data.ParseFromString(data[8:])
    return msg
Ejemplo n.º 6
0
 def sendGetLogInfoMsg(self, serverId, serverType, subType, siteId):
     GetServerErrorLogReq = helper.createProto(900018)
     GetServerErrorLogReq.serverId = serverId
     GetServerErrorLogReq.serverType = serverType
     GetServerErrorLogReq.subType = subType
     GetServerErrorLogReq.siteId = siteId
     self.send(msgUtils.packMonitorMsg(900018, GetServerErrorLogReq))
Ejemplo n.º 7
0
 def notifyServerList(self, conn):
     RegiterServerNotify = helper.createProto(900004)
     for connect in self.connects.values():
         if connect.registed:
             infoProto = RegiterServerNotify.serverInfo.add()
             connect.setServerInfoProto(infoProto)
     RegiterServerNotify.id = conn.id
     conn.send(msgUtils.packMonitorMsg(900004, RegiterServerNotify))
Ejemplo n.º 8
0
 def sendServerInfo(self):
     logging.debug("发送获取{}服务器消息".format(self.info()))
     GateRouteServerConnInfoReq = helper.createProto(900001)
     if self.type == helper.C_ROUTE:
         self.send2RouteSelf(900001, GateRouteServerConnInfoReq,
                             self.onGetServerInfo)
     else:
         self.send2Gate(900001, GateRouteServerConnInfoReq,
                        self.onGetServerInfo)
Ejemplo n.º 9
0
def unpackGateMsg(data):
    msg = MsgData()
    msg.siteId = int.from_bytes(data[0:4], byteorder='big')
    msg.seq = int.from_bytes(data[4:8], byteorder='big')
    msg.code = int.from_bytes(data[8:12], byteorder='big')
    msg.len = int.from_bytes(data[12:16], byteorder='big')
    msg.data = helper.createProto(msg.code)
    msg.data.ParseFromString(data[16:])
    msg.sendType = 1
    return msg
Ejemplo n.º 10
0
def unpackGateServerMsg(data):
    msg = MsgData()
    msg.siteId = int.from_bytes(data[0:4], byteorder='big')
    msg.userId = int.from_bytes(data[4:8], byteorder='big')
    msg.broadcast = data[8]
    msg.code = int.from_bytes(data[12:16], byteorder='big')
    msg.len = int.from_bytes(data[16:20], byteorder='big')
    msg.data = helper.createProto(msg.code)
    msg.data.ParseFromString(data[20:])
    return msg
Ejemplo n.º 11
0
 def sendServerList(self):
     GetServerListC2A_S = helper.createProto(504002)
     servers = mysql.getResult()
     for server in servers:
         info = GetServerListC2A_S.info.add()
         info.id = server[0]
         info.ip = server[1]
         info.port = server[2]
         info.type = server[3]
         info.subType = server[4]
     self.send2Route(0, 0, 2, 0, 0, 504002, GetServerListC2A_S)
Ejemplo n.º 12
0
def unpackRouteMsg(data):
    msg = MsgData()
    msg.siteId = int.from_bytes(data[0:4], byteorder='big')
    msg.userId = int.from_bytes(data[4:8], byteorder='big')
    msg.serverId = int.from_bytes(data[8:10], byteorder='big')
    msg.sendType = data[10]
    msg.targetType = data[11]
    msg.subTargetType = data[12]
    msg.extra = data[13]
    msg.reserved = int.from_bytes(data[14:16], byteorder='big')
    msg.seq = int.from_bytes(data[16:20], byteorder='big')
    msg.no = int.from_bytes(data[20:24], byteorder='big')
    msg.len = int.from_bytes(data[24:28], byteorder='big')
    msg.data = helper.createProto(msg.no)
    msg.data.ParseFromString(data[28:])
    return msg
Ejemplo n.º 13
0
 def onGetServerLog(self, data):
     print('onGetServerLog')
     GetServerErrorLogRes = helper.createProto(900019)
     connectList = []
     if (data.serverId != 0):
         coonect = self.server.getConnectByServerId(data.serverId)
         connectList.append(coonect)
     elif data.serverType == -1:
         connectList = self.server.getConnectsByServerType(
             data.serverType, data.subType, data.siteId)
     else:
         connectList = self.server.getConnectsByServerType(
             data.serverType, data.subType, data.siteId)
     for connect in connectList:
         for log in connect.logs:
             GetServerErrorLogRes.logs.append(log)
     self.send(msgUtils.packMonitorMsg(900019, GetServerErrorLogRes))
Ejemplo n.º 14
0
 def sendGetMonitorInfoMsg(self):
     GetMonitorServerInfoReq = helper.createProto(900015)
     self.send(msgUtils.packMonitorMsg(900015, GetMonitorServerInfoReq))
Ejemplo n.º 15
0
 def onRegisterDebugA2G_R(self, data):
     RegisterG2A_S = helper.createProto(500002)
     self.send(msgUtils.packGateServerMsg(data.siteId, data.userId, 500002, RegisterG2A_S))
Ejemplo n.º 16
0
 def onRegisterA2R_R(self, data):
     RegisterR2A_S = helper.createProto(503002)
     self.send(msgUtils.packRouteMsg(0, 0, 0, 4, 0, data.seq, 503002, RegisterR2A_S))
Ejemplo n.º 17
0
 def onRegisterMonitor(self):
     GateRouteServerConnInfoReq = helper.createProto(900001)
     self.send(msgUtils.packMonitorMsg(900001, GateRouteServerConnInfoReq))