def event(self): packet = None timeout = 0 error = 0 while packet is None: try: if self.serverSocket is None: self.console.info('event: reconnecting...') self.connect() self.login() self.enable_events() temp, self.receiveBuffer = protocol.receivePacket(self.serverSocket, self.receiveBuffer) isFromServer, isResponse, sequence, words = protocol.DecodePacket(temp) if isFromServer and not isResponse: packet = temp else: self.console.info('received non-event packet: %s' % words) except socket.timeout: timeout += 1 self.console.debug('timeout! %s' % timeout) if timeout >= 5: request = protocol.EncodeClientRequest(['eventsEnabled', 'true']) self.serverSocket.sendall(request) timeout = 0 except socket.error, detail: raise Exception('error in server connection?!')
def send(self, *command): if not command: pass if self.serverSocket is None: self.console.debug('not connected, reconnecting...') self.connect() self.login() if len(command) == 1 and type(command[0]) == tuple: words = command[0] else: words = command request = protocol.EncodeClientRequest(words) self.console.debug(words) try: self.serverSocket.sendall(request) response, self.receiveBuffer = protocol.receivePacket(self.serverSocket, self.receiveBuffer) except socket.error, detail: raise Exception('error sending: %s', detail)