def on_msg_received(self, url_or_srv_name, msg): """ Method: on_msg_received Description: "收到消息"的处理接口 Parameter: url_or_srv_name: 消息发送者的url msg: 消息 Return: Others: """ #print "on_msg_received", msg.get_cmd_code() cmd_code = msg.get_cmd_code() if (cmd_code != cluster_cmd_code.CMD_CLUSTER_QUERY_STATE and cmd_code != cluster_cmd_code.CMD_CLUSTER_ACK_STATE): tracelog.error("ClusterServerEventHandler receved invalid msg:%d" % cmd_code) return try: state_msg = ClusterStateMsg.deserialize(msg.get_data()) if state_msg is None: tracelog.error("ClusterStateMsg.deserialize failed. " "msg:%d, %r" % (cmd_code, msg.get_data())) return if cmd_code == cluster_cmd_code.CMD_CLUSTER_QUERY_STATE: self.__cluster_thread.on_query_state(url_or_srv_name, state_msg) elif cmd_code == cluster_cmd_code.CMD_CLUSTER_ACK_STATE: self.__cluster_thread.on_ack_state(state_msg) except: tracelog.exception("handler msg(%d) failed" % cmd_code)
def __get_state_msg(self, cmd_code): """ Method: __get_state_msg Description: 生成状态应答消息 Parameter: cmd_code: 命令码 Return: Others: """ state = ClusterStateMsg() state.ip = self.__cluster_cfg_info.my_inner_ip state.role = self.get_role() state.start_time = self.__start_time msg = pycallacp.AcpMessage(cmd_code , state.serialize()) return msg