【发布时间】:2015-05-22 14:49:22
【问题描述】:
我想在 Python 中运行一个程序,每秒通过网络套接字向 Tornado 服务器发送一条消息。我一直在使用 websocket-client 上的示例;
这个例子不起作用,因为ws.run_forever()会停止while循环的执行。
谁能给我一个示例,说明如何正确地将其实现为一个线程类,我既可以调用它的发送方法,也可以接收消息?
import websocket
import thread
import time
def on_message(ws, message):
print message
def on_error(ws, error):
print error
def on_close(ws):
print "### closed ###"
def on_open(ws):
pass
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://echo.websocket.org/", on_message = on_message, on_error = on_error, on_close = on_close)
ws.on_open = on_open
ws.run_forever()
while True:
#do other actions here... collect data etc.
for i in range(100):
time.sleep(1)
ws.send("Hello %d" % i)
time.sleep(1)
【问题讨论】:
标签: python multithreading websocket