在我的方案中,有n個客戶端和1個服務器。客戶端向服務器發送請求並接收響應。此外,還需要一個單向消息傳遞機制,其中服務器將特定的消息發送給特定的客戶端,並且期望沒有答案。所以服務器必須能夠專門用單向消息機制來處理客戶端。ZeroMQ:如何向特定用戶發送消息
請求 - 響應部分很簡單(REQ和REP套接字),但我不確定如何實現單向消息部分。我嘗試使用PUB和SUB插口與每個用戶從服務器請求一個ID,只訂閱具有此ID這樣的消息:
rc = zmq_setsockopt (subscriber, ZMQ_SUBSCRIBE,
subscriber_id, strlen (subscriber_id));
這個工作在理論,但問題是,所有消息都播出然後在客戶端進行過濾,這對我來說不是一種選擇。
所以我的問題是:有沒有更好的方法來解決特定的客戶端?
你描述的是用'PUSH' - 'PULL'插座類型完成的。他們是單向的,你可以做到你想要的。 – Mjh
謝謝,但我仍然不明白我將如何解決許多客戶中的特定客戶。服務器將有一個PUSH套接字,但沒有什麼像'socket.SendTo(message,receiverAddress)'方法。你如何處理接收器? – loki
每個客戶端使用一個套接字。如果您複用信息,您可以使用經銷商/路由器(指南中有各種示例)。有關於服務發現以及如何處理多路複用,異步請求回覆等的整個部分。 – Mjh