mirror of https://github.com/jumpserver/jumpserver
使用原生select
parent
01d6f751b1
commit
43c0770770
|
@ -21,7 +21,8 @@ from pyinotify import WatchManager, Notifier, ProcessEvent, IN_DELETE, IN_CREATE
|
||||||
# from gevent import monkey
|
# from gevent import monkey
|
||||||
# monkey.patch_all()
|
# monkey.patch_all()
|
||||||
# import gevent
|
# 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
|
import paramiko
|
||||||
|
|
||||||
|
@ -200,16 +201,18 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler):
|
||||||
try:
|
try:
|
||||||
data = ''
|
data = ''
|
||||||
while True:
|
while True:
|
||||||
wait_read(self.chan.fileno())
|
r, w, e = select.select([self.chan, sys.stdin], [], [])
|
||||||
recv = self.chan.recv(1024)
|
if self.chan in r:
|
||||||
if not len(recv):
|
recv = self.chan.recv(1024)
|
||||||
return
|
print recv
|
||||||
data += recv
|
if not len(recv):
|
||||||
try:
|
return
|
||||||
self.write_message(json.dumps({'data': data}))
|
data += recv
|
||||||
data = ''
|
try:
|
||||||
except UnicodeDecodeError:
|
self.write_message(json.dumps({'data': data}))
|
||||||
pass
|
data = ''
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
pass
|
||||||
finally:
|
finally:
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue