Наконец, решил пойти с Tornado в качестве сервера WebSocket, но у меня есть вопрос о том, как он реализован.
После основного учебного пособия по созданию рабочего сервера я закончил с этим:
#!/usr/bin/env python
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.web import Application
from tornado.websocket import WebSocketHandler
class Handler(WebSocketHandler):
def open(self):
print "New connection opened."
def on_message(self, message):
print message
def on_close(self):
print "Connection closed."
print "Server started."
HTTPServer(Application([("/", Handler)])).listen(1024)
IOLoop.instance().start()
Это отлично работает и все, но мне было интересно, нужны ли другие модули (tornado.httpserver, tornado.ioloop и tornado.web) для запуска сервера.
Это не огромная проблема, связанная с ними, но я просто хотел убедиться, что не было лучшего способа делать то, что они делают (я еще не закрыл эти модули).
tornado.httpserver:
tornado.ioloop:
tornado.web:
Надеюсь, это покроет оставшиеся модули.
Да, они нужны, потому что вы используете каждый импорт из каждого используемого вами модуля/пакета. Если вы ссылаетесь на что-то наверху своего источника, но никогда не используете его снова в любом из следующих кодов, то, конечно, вы им не нужны, но в этом случае вы используете свой импорт.