2017-04-26 106 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 
}; 

希望这有助于!