0
토네이도 웹 소켓 서버에 대한 간단한 파이썬 코드가 있습니다.python 토네이도 websocket가 다시 연결되면 오류가 발생합니다.
import tornado.httpserver
import tornado.websocket
import tornado.ioloop
import tornado.web
import time
import os
import subprocess
from subprocess import *
import datetime
listeners = []
class WSHandler(tornado.websocket.WebSocketHandler):
def open(self):
print 'New connection was opened'
self.write_message("Con!")
listeners.append(self)
def on_message(self, message):
print 'Received:', message
self.write_message("Received: " + message)
for w in listeners:
w.write_message('MASS MESSAGE')
def on_close(self):
print 'Con closed...'
def trimite(self, msg):
self.write_message(msg)
application = tornado.web.Application([
(r'/ws', WSHandler),
])
if __name__ == "__main__":
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(65)
tornado.ioloop.IOLoop.instance().start()
내가 웹 소켓 서버로 내 웹 페이지에서 명령을 실행할 때마다, 메시지가 모든 연결에 전송됩니다. 괜찮아요 작동하지만 ... 내가 닫고 클라이언트를 다시 연결하고 다른 명령을 보내려고하면이 오류가 발생하고 연결이 닫힙니다. 다시 작동하려면 websocket 서버를 다시 시작해야합니다. 어떤 이상이 그럴까요? 감사!
ERROR:root:Uncaught exception in /ws
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/tornado/websocket.py", line 258, in wrapper
return callback(*args, **kwargs)
File "ciuciu.py", line 26, in on_message
w.write_message('MASS MESSAGE')
File "/usr/lib/python2.7/dist-packages/tornado/websocket.py", line 144, in write_message
self.ws_connection.write_message(message, binary=binary)
AttributeError: 'NoneType' object has no attribute 'write_message'