在他们的github页面上有一个例子可以做到这一点。好像您是从该示例开始的,并从 on_open中每秒 发送一次消息的代码并在 run_forever
调用之后粘贴了该 代码 ,BTW一直运行到套接字断开连接为止。
也许您在这里对基本概念有疑问。总会有一个专用于侦听套接字的线程(在这种情况下,主线程在 run_forever
内部进入循环以等待消息)。如果您想进行其他 *** 作,则需要另一个线程。
下面是示例代码的不同版本,其中不是使用主线程作为“套接字侦听器”,而是创建了另一个线程,并在 其中 运行 run_forever
。我认为它有点复杂,因为您可以编写代码来确保套接字可以连接,同时可以使用 on_open 回调,但这也许可以帮助您理解。
import websocketimport threadingfrom time import sleepdef on_message(ws, message): print messagedef on_close(ws): print "### closed ###"if __name__ == "__main__": websocket.enableTrace(True) ws = websocket.WebSocketApp("ws://echo.websocket.org/", on_message = on_message, on_close = on_close) wst = threading.Thread(target=ws.run_forever) wst.daemon = True wst.start() conn_timeout = 5 while not ws.sock.connected and conn_timeout: sleep(1) conn_timeout -= 1 msg_counter = 0 while ws.sock.connected: ws.send('Hello world %d'%msg_counter) sleep(1) msg_counter += 1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)