如何在python中实现pub/subsocket.io客户端?

How to implement pub/sub socket.io client in python?

我一直在尝试实现下面代码的 python 等效项,但似乎无法使其正常工作。

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

我解决了这个问题,下面是正确的解决方案。

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