簡體   English   中英

數據獲取檢查PUB / SUB模式

[英]Data obtaining check PUB/SUB pattern

有一個服務器,它收集一些數據,然后將其發送到客戶端。 我需要確保客戶端獲取服務器發送的數據。 我認為這里的PUB / SUB模式是最好的選擇,但我不明白如何檢查客戶端是否獲得了數據? 我聽說過可靠的PUB / SUB,但沒有真正的例子。

任何想法,建議,例子和幫助?

簡單出版商:

import zmq

context = zmq.Context()

server_socket = context.socket(zmq.PUB)
server_socket.bind('tcp://*:5559')

while True:
    server_socket.send('message')

簡單訂閱者:

import zmq

context = zmq.Context()

client_socket = context.socket(zmq.SUB)
client_socket.setsockopt(zmq.SUBSCRIBE, '')
client_socket.connect('tcp://localhost:5559')

while True:
    print client_socket.recv()

在這個例子中,我需要保證訂戶獲得“消息”。

在一般形式中, pubsub不適合您的用例。 pubsub的基本原則之一是發布者和訂閱者脫鈎 即發布者不應該知道它的訂閱者,也不應該受其影響。 可能有任意數量的訂閱者,包括沒有訂閱者。

您似乎需要單個訂戶,這打破了這一點。

ZMQ指南討論了如何總是丟棄來自PUB套接字的前幾條消息,以及如果你想要你所談論的可靠性,你需要SUB端發送回確認它收到每條消息。

您可能需要考慮使用PUSH / PULL連接。 用PUSH替換你的PUB,用PULL替換你的SUB。 也許綁定PUSH結束。 請參閱: ZMQ PUSH / PULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM