2016-11-26 76 views
0

我想用websocket打印流信息。服务器间歇发送信息。我在下面的python代码中使用while True:循环打印它。如何从websocket(客户端)打印流信息?

有没有更好的方法?

from websocket import create_connection 


def connect_Bitfinex_trades(): 
    ws = create_connection("wss://api.sample.com:3000/ws") 
    print "Sent" 
    while True: 
     print "Receiving..." 
     result = ws.recv() 
     print "Received '%s'" % result 

我使用这里找到https://pypi.python.org/pypi/websocket-client/

回答

1

我个人觉得这是一个更好的解决方案,以获取/打印从WebSocket的信息WebSocket的客户端。我在websocket-client的开发者网站上找到了这个例子。

如果您注意到,本示例使用run_forever方法,该方法将保持websocket连接处于打开状态并接收消息,直到发生错误或连接关闭。

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): 
    def run(*args): 
     for i in range(3): 
      time.sleep(1) 
      ws.send("Hello %d" % i) 
     time.sleep(1) 
     ws.close() 
     print("thread terminating...") 
    thread.start_new_thread(run,()) 


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()