zmq包
这个包用于在sever和client之间传递信息挺方便的,比socket用着简单。
一个使用场景
在量化平台中,如果需要跑多个策略,每个策略都需要获取数据的时候,如果都从交易所获取,可能超过请求限制,可以在本地只获取一次,获取的数据放到sever上,每个策略作为client调用sever的数据,这样就解决了数据限制的问题。
小例子
server
import zmq import time context = zmq.Context() socket = context.socket(zmq.PUB) socket.bind("tcp://*:5411") while True: message={'name':'yunjinqi','time':time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())} print(message) socket.send_string(str(message)) time.sleep(1)
client
import zmq import sys context = zmq.Context() socket = context.socket(zmq.SUB) socket.connect("tcp://localhost:5411") socket.setsockopt_string(zmq.SUBSCRIBE,'') # 消息过滤 while True: response = socket.recv(); print( eval(bytes.decode(response)))