2015-05-20 37 views
3

我一直在試圖實現下面的代碼的python等價物,但似乎無法得到它的工作。如何在python中實現pub/sub socket.io客戶端?

var io = require('socket.io-client') 
var socket = io('http://devel.hz.udoidio.info:5000') 

socket.on('connect', function() { 
    socket.emit('subscribe', 'new-tx') 
}) 

socket.on('new-tx', function (txid) { 
    console.log('New tx: ' + txid) 
}) 

我試過這種方法,但它似乎沒有產生任何東西。

from socketIO_client import SocketIO, LoggingNamespace 

def on_response(*args): 
    print 'on_response', args 

baseurl = "http://v1.livenet.bitcoin.chromanode.net" 
socketIO = SocketIO(baseurl, 80, LoggingNamespace) 
socketIO.on('subscribe', on_response) 
socketIO.emit('subscribe', 'new-block') 
socketIO.wait() 

回答

2

我resloved問題,下面是正確的解決方案。

from socketIO_client import SocketIO 

def on_response(*args): 
    print 'on_response', args 

baseurl = "http://devel.hz.udoidio.info" 
with SocketIO(baseurl, 5000) as socketIO: 
    socketIO.on('new-tx', on_response) 
    socketIO.emit('subscribe', 'new-tx') 
    socketIO.wait()