2016-11-26 74 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()