def connectionLost(self, reason=twistedError.ConnectionDone): if self.role == Command.BaseCommand.PV_ROLE_HUMAN: InternalMessage.UnregistFilter(InternalMessage.TTYPE_HUMAN, self.client_id) InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_HUMAN, self.client_id, id(self.transport), InternalMessage.OPER_OFFLINE, 'n') elif self.role == Command.BaseCommand.PV_ROLE_RELAYER: InternalMessage.UnregistFilter(InternalMessage.TTYPE_GATEWAY, self.relayer_id) InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_GATEWAY, self.relayer_id, 0, InternalMessage.OPER_OFFLINE) try: self.timer.cancel() except Exception: pass #print ("connection lost:",id(self.transport),reason) self.releaseFromDict() with self.factory.lockPendingCmd: SBProtocol.connection_count = SBProtocol.connection_count - 1 Protocol.connectionLost(self, reason=reason)
def UpdateActiveTime(role_session, terminal_id,sock_=0): from Command import BaseCommand from SBPS import InternalMessage with session_scope() as session : if role_session==BaseCommand.PV_ROLE_HUMAN: session.query(SBDB_ORM.Client).filter(SBDB_ORM.Client.id==terminal_id).update({SBDB_ORM.Client.dt_active:datetime.datetime.now()}) session.commit() InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_HUMAN, terminal_id, sock_, InternalMessage.OPER_ONLINE) elif role_session==BaseCommand.PV_ROLE_RELAYER: session.query(SBDB_ORM.Relayer).filter(SBDB_ORM.Relayer.id==terminal_id).update({SBDB_ORM.Relayer.dt_active:datetime.datetime.now()}) session.commit() InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_GATEWAY, terminal_id, 0, InternalMessage.OPER_ONLINE)
def UpdateAuthTimeHuman(client_id,balance,sock_): from SBPS import InternalMessage InternalMessage.RegistFilter(InternalMessage.TTYPE_HUMAN,client_id) with session_scope() as session : session.query(SBDB_ORM.Client).filter(SBDB_ORM.Client.id==client_id).update({SBDB_ORM.Client.dt_auth:datetime.datetime.now()}) session.commit() InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_HUMAN, client_id, sock_, InternalMessage.OPER_ONLINE,balance)
def UpdateAuthTimeRelayer(relayer_id): from SBPS import InternalMessage InternalMessage.RegistFilter(InternalMessage.TTYPE_GATEWAY,relayer_id) with session_scope() as session : session.query(SBDB_ORM.Relayer).filter(SBDB_ORM.Relayer.id==relayer_id).update({SBDB_ORM.Relayer.dt_auth:datetime.datetime.now(),SBDB_ORM.Relayer.server_id:InternalMessage.MyServerID}) session.commit() InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_GATEWAY, relayer_id, 0, InternalMessage.OPER_ONLINE)