Мне нужно отправить системные журналы в браузер, и поэтому у меня есть сервер веб-сервера, основанный на торнадо, который работает так.Клиент python websocket - отправка сообщений с кода python на WebSocketServer
class WSHandler(tornado.websocket.WebSocketHandler):
def check_origin(self, origin):
return True
def get(self, *args, **kwargs):
self.ip = self.get_argument('ip', None)
self.action = self.get_argument('action', None)
super(WSHandler, self).get(self, *args, **kwargs)
def open(self, *args, **kwargs):
clients.append(self)
def on_message(self, message):
ll = eval(message)
for cl in clients:
if cl.ip and cl.ip != ll.user:
continue
if cl.action and cl.action != ll.action:
continue
message = '%s %s' % (ll.action, ll.url)
cl.write_message(message)
def on_close(self):
try:
clients.remove(self)
except ValueError:
pass
примеры я столкнулся до сих пор вращаются вокруг серверов и Tornado на основе JS-клиентов.
Что мне нужно, однако, это простой способ подключения к этому веб-сайту от клиента Python, предпочтительно с поддержкой Tornado. Клиенту не нужно получать сообщения - отправляйте их только. Я думал, что мой ответ с этим СЦ пост,
How to run functions outside websocket loop in python (tornado)
... но мне нужно отправить сообщение всякий раз, когда происходит событие журнала, и предпочтительно от моего кода, который разборе событий. Примеры, с которыми я столкнулся до сих пор, вращаются вокруг серверов на основе Tornado и на основе js-клиентов. Есть ли короткий & клиент, основанный на торнадо, который отправляет только сообщения, которые можно вызывать из цикла for?
SHAZZAM !! Мне удалось это сделать с вашим примером. Возможно, мне следовало бы и на ранних постах, но я этого не делал. Спасибо всем за вашу помощь. – Thinkwell