def onRecv(self, fileno): if self._socket.fileno() == fileno: sock, addr = self._socket.accept() self._clients[sock.fileno()] = (sock, addr) KBEngine.registerReadFileDescriptor(sock.fileno(), self.onRecv) DEBUG_MSG("BEGIN Poller::onRecv: new channel[%s/%i]" % (addr, sock.fileno())) else: sock, addr = self._clients.get(fileno, None) if sock is None: return data = sock.recv(2048) DEBUG_MSG("BEGIN Poller::onRecv: %s/%i data size=%i" % (addr, sock.fileno(), len(data))) self.processData(sock, addr, data) KBEngine.deregisterReadFileDescriptor(sock.fileno()) sock.close() del self._clients[fileno]
def onRecv(self, fileno): if self._socket.fileno() == fileno: sock, addr = self._socket.accept() self._clients[sock.fileno()] = (sock, addr) KBEngine.registerReadFileDescriptor(sock.fileno(), self.onRecv) DEBUG_MSG("Poller::onRecv: new channel[%s/%i]" % (addr, sock.fileno())) else: sock, addr = self._clients.get(fileno, None) if sock is None: return if addr[0] not in ('localhost', '127.0.0.1'): return data = sock.recv(2048) DEBUG_MSG("Poller::onRecv: %s/%i get data, size=%i" % (addr, sock.fileno(), len(data))) DEBUG_MSG("Poller::onRecv: data = {}".format(data)) try: data = data.decode() data = str(data).split('\r\n') content = json.loads(data[-1]) self.processData(content) except: import traceback ERROR_MSG(traceback.format_exc()) finally: KBEngine.deregisterReadFileDescriptor(sock.fileno()) sock.close() del self._clients[fileno]
def stop(self): if self._socket: INFO_MSG("httpserver stop host[%s], port[%s]" % (self._host, self._port)) KBEngine.deregisterReadFileDescriptor(self._fd) self._socket.close() self._socket = None self.app = None
def onRecv(self, fileno): if self._sock.fileno() == fileno: self.delTimer(self._write_dt) try: INFO_MSG('---------------------------onRecv:%s' % self._reqs_curt[0]) resp = HTTPResponse(self._sock) if self._reqs_curt and self._reqs_curt[2]: resp.begin() self._reqs_curt[2](resp) except: # 出错重新加载 self._reqs.append(self._reqs_curt) self.logsError() finally: KBEngine.deregisterReadFileDescriptor(self._sock.fileno()) self.cleanSocketStatus()
def onRecv(self, fileno): if self._socket.fileno() == fileno: sock, addr = self._socket.accept() self._clients[sock.fileno()] = (sock, addr) KBEngine.registerReadFileDescriptor(sock.fileno(), self.onRecv) DEBUG_MSG("Poller::onRecv: new channel[%s/%i]" % (addr, sock.fileno())) else: sock, addr = self._clients.get(fileno, None) if sock is None: return data = sock.recv(2048) DEBUG_MSG("Poller::onRecv: %s/%i get data, size=%i" % (addr, sock.fileno(), len(data))) self.processData(sock, data) KBEngine.deregisterReadFileDescriptor(sock.fileno()) sock.close() del self._clients[fileno]
def on_receive(self, sock, address, fileno): KBEngine.deregisterReadFileDescriptor(fileno) try: req = HTTPRequest(sock, address) if req.is_bad: return resp = HTTPResponse(sock) if req.has_error: resp.send_error(req.error_code) else: handler = self._handlers.get(req.path) if not handler: handler = handler_404 response = handler(req) response.adapt(resp) resp.flush() finally: sock.close()
def onRecv(self, sock, addr, fileno): KBEngine.deregisterReadFileDescriptor(sock.fileno()) try: req, resp = HTTPRequest(sock), HTTPResponse(sock) for k, v in self._handler.items(): if req.url.startswith(k): for func in v: try: func(req, resp) except: pass finally: if resp.complete(): return if self._resPath: self.onRespStaticRes(req, resp) except: sock.close()
def on_receive(self, sock, address, fileno): KBEngine.deregisterReadFileDescriptor(fileno) need_close = True try: req = HTTPRequest(sock, address) if req.is_bad: return resp = HTTPResponse(sock) if req.has_error: resp.send_error(req.error_code) else: need_close = False handler = self._handlers.get(req.path) if not handler: handler = async_handler_404 handler(Promise(sock, req, resp)) finally: if need_close: sock.close()
def onRecv(self, task, sock, file_no): if sock.fileno() == file_no: t_id = self._write_timer.pop(file_no, None) if t_id: self.cancel_timer(t_id) try: # INFO_MSG('------------- onRecv ------------ {} {}'.format(task[0], task[2])) resp = HTTPResponse(sock) if task and task[2]: resp.begin() if resp.getcode() / 100 == 2: decode = resp.read().decode('utf-8') task[2](decode) else: task[2](None) except: self.logsError() finally: KBEngine.deregisterReadFileDescriptor(file_no) if not sock._closed: sock.close()
def stop(self): if self._socket: KBEngine.deregisterReadFileDescriptor(self._socket.fileno()) self._socket.close() self._socket = None
def stop(self): if self._socket: KBEngine.deregisterReadFileDescriptor(self._socket.fileno()) self._socket.close() self._socket = None
def deregisterRead(self): if self._registerRead == True: KBEngine.deregisterReadFileDescriptor(self._socket.fileno()) self._registerRead = False
def close(self): KBEngine.deregisterReadFileDescriptor(self._fd) self._sock.close() self._fd = 0 self._sock = None self.cleanup()