2017-04-26 124 views
0

我想寫一個Python 3代碼,它使用Dogechain Websocket APIpython websocket client打印出每個新的Dogicoin塊。Python 3 websocket客戶端,永遠運行

import json 
import ssl 
from websocket import create_connection 

ws = create_connection("wss://ws.dogechain.info/inv", sslopt={"cert_reqs": ssl.CERT_NONE}) 
ws.send(json.dumps({"op":"blocks_sub"})) 
while 1: 
    result = ws.recv() 
    print(result) 

成功訂閱後,塊更新不會來。我得到的只是以下輸出,沒有別的。我的目標是每當塊到達時運行一個函數。我做錯了什麼?

{"op": "status", "msg": "subscribed, welcome, ..."} 
{"op": "status", "msg": "subscribed"} 
+0

我有使用nodejs客戶端相同的問題,你有沒有設法弄清楚什麼是錯的? – lkan

回答

0

創建您的塊函數存在一個線程,在while條件運行的線程函數,並把一些睡眠時間,你想,這樣你可以有你的數據塊,不論它的存在,即使它不不存在它會給你空白的迴應。

對於例如,我做了這個樣子, 這是我的線程函數

def mail_data(self): 
    mailbox = getMailBox(); 
    while True: 
     notify('notification',mailbox.checkMailBox()) // my email library in buiilt function 
     time.sleep(20) 

,並在我的html頁面,我使用的WebSocket這樣,

ws.onmessage = function (evt) { 
       // on receiving messages through websocket 
       var json_data = evt.data; //this will be got from that function 
}; 

希望這有助於!