Ist es möglich, wenn mehrere Socket-Clients mit einem Tornado-WebSocket-Server verbunden sind, eine Nachricht an eine bestimmte zu senden? Ich weiß nicht, ob es eine Möglichkeit gibt, die ID eines Clients zu erhalten und dann eine Nachricht an diese ID zu senden.Python Tornado WebSocket Server Nachricht an bestimmten Client senden
Mein Client-Code ist:
from tornado.ioloop import IOLoop, PeriodicCallback
from tornado import gen
from tornado.websocket import websocket_connect
class Client(object):
def __init__(self, url, timeout):
self.url = url
self.timeout = timeout
self.ioloop = IOLoop.instance()
self.ws = None
self.connect()
PeriodicCallback(self.keep_alive, 20000, io_loop=self.ioloop).start()
self.ioloop.start()
@gen.coroutine
def connect(self):
print "trying to connect"
try:
self.ws = yield websocket_connect(self.url)
except Exception, e:
print "connection error"
else:
print "connected"
self.run()
@gen.coroutine
def run(self):
while True:
msg = yield self.ws.read_message()
print msg
if msg is None:
print "connection closed"
self.ws = None
break
def keep_alive(self):
if self.ws is None:
self.connect()
else:
self.ws.write_message("keep alive")
if __name__ == "__main__":
client = Client("ws://xxx", 5)