Websockets mit Tornado: Holen Sie sich den Zugriff von "außen" zum senden von Nachrichten an clients

Ich fange an, in WebSockets als Weg zur übertragung von Daten von einem server an die verbundenen clients. Da ich python Programmieren jede Art von Logik, ich sah der Tornado so weit. Der Codeausschnitt unten zeigt die einfachen Beispiel kann man überall auf der Web:

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
        self.write_message('ECHO: ' + 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()

Als es ist, das funktioniert wie vorgesehen. Aber ich kann nicht meinem Kopf herum wie kann dieses "integriert" in dem rest meiner Bewerbung. Im obigen Beispiel wird die WebSocket-nur sendet etwas an die clients als Antwort auf eine client-Nachricht. Wie kann ich auf die WebSocket-von "außen"? Zum Beispiel zur Anzeige aller momentan verbundenen clients, die eine Art-Ereignis aufgetreten ist, -- und dieser Fall ist NICHT jede Art von Nachricht von einem client. Im Idealfall würde ich mag zu schreiben, die irgendwo in meinem code so etwas wie:

websocket_server.send_to_all_clients("Good news everyone...")

Wie kann ich dies tun? Oder muss ich eine komplette misundersanding, wie WebSockets (oder Tornado) arbeiten sollten. Danke!

InformationsquelleAutor Christian | 2014-05-09
Schreibe einen Kommentar