Mam podstawowy test Tornado websocket:Tornado: Identyfikacja/śledzenie połączeń stron internetowych?
import tornado.httpserver
import tornado.websocket
import tornado.ioloop
import tornado.web
class WSHandler(tornado.websocket.WebSocketHandler):
def open(self):
print 'new connection'
self.write_message("Hello World")
def on_message(self, message):
print 'message received %s' % message
def on_close(self):
print 'connection closed'
application = tornado.web.Application([
(r'/ws', WSHandler),
])
if __name__ == "__main__":
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8888)
tornado.ioloop.IOLoop.instance().start()
Chcę być w stanie obsługiwać wiele połączeń (które wydaje się, że już zrobić), ale także, aby móc odwoływać się inne połączenia. Nie widzę sposobu, aby zidentyfikować i śledzić poszczególne połączenia, aby móc obsługiwać zdarzenia podczas otwierania połączenia, odbierania wiadomości i zamykania połączenia.
[Edytuj] Myśl o stworzeniu dyktatury, w której kluczem jest klucz Sec-websocket, a wartością jest obiekt WSHandler ... myśli? Nie jestem pewien, jak niezawodny Sec-websocket-key ma być unikalny.
Z tego co wiem, zostanie utworzona pojedyncza instancja WSHandler na połączenie. Tak więc WSHandlers to w zasadzie tylko interfejsy połączeń. Może chcesz dodać silnik przetwarzania komunikatów na szczycie sieci, na przykład http://code.google.com/p/pyscxml/? – Vladimir