Имейте этот простой код на Python для сервера веб-сервера торнадо.python tornado Ошибка 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, сообщение отправляется всем соединениям. он работает нормально ... но, если я закрываю и повторно подключаю клиент, и я пытаюсь отправить другую команду, я получаю эту ошибку, и соединение закрывается. Мне нужно перезапустить сервер 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'