From 43c0770770cc9fe40f5dd205b35e8ffb6bafdd20 Mon Sep 17 00:00:00 2001 From: ibuler <ibuler@qq.com> Date: Fri, 6 Nov 2015 12:09:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=8E=9F=E7=94=9Fselect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- run_websocket.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/run_websocket.py b/run_websocket.py index 7283ed9b..32083aa5 100644 --- a/run_websocket.py +++ b/run_websocket.py @@ -21,7 +21,8 @@ from pyinotify import WatchManager, Notifier, ProcessEvent, IN_DELETE, IN_CREATE # from gevent import monkey # monkey.patch_all() # import gevent -from gevent.socket import wait_read, wait_write +# from gevent.socket import wait_read, wait_write +import struct, fcntl, signal, socket, select, fnmatch import paramiko @@ -200,16 +201,18 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler): try: data = '' while True: - wait_read(self.chan.fileno()) - recv = self.chan.recv(1024) - if not len(recv): - return - data += recv - try: - self.write_message(json.dumps({'data': data})) - data = '' - except UnicodeDecodeError: - pass + r, w, e = select.select([self.chan, sys.stdin], [], []) + if self.chan in r: + recv = self.chan.recv(1024) + print recv + if not len(recv): + return + data += recv + try: + self.write_message(json.dumps({'data': data})) + data = '' + except UnicodeDecodeError: + pass finally: self.close() -- 2.18.0