我有两个无限运行的python程序。
第一个进程使用Twisted和Autobahn从WebSocket提要接收数据。 这是一个无限循环。
第二个进程使用自定义库从Pusher WebSocket提要接收数据。 这也是一个无限循环。
我正在寻找一种方法来使这两个过程与第三个过程进行通信。第三个流程必须能够与两个流程进行双向沟通。因此,第三个流程必须能够推送和接收来自两个程序的消息。
我尝试使用多处理和队列,但没有成功。
这是第一个过程:
from twisted.internet import reactor
from autobahn.twisted.websocket import WebSocketClientFactory, WebSocketClientProtocol, connectWS
import json
class ClientProtocol(WebSocketClientProtocol):
...
def onMessage(self, msg, binary):
...
# Send data to third process
...
if __name__ == '__main__':
factory = WebSocketClientFactory("wss://feed.com")
factory.protocol = ClientProtocol
connectWS(factory)
reactor.run()
这是第二个过程:
import pusherclient
import sys, time
import json
def callback(event):
...
# Send data to third process
global pusher
def connect_handler(data):
channel = pusher.subscribe('order_book')
channel.bind('data', callback)
...
pusher.connect()
while True:
time.sleep(1)