2015-05-22 6 views
2

Я хочу отправить данные на сервер от клиента. Для сервера важно только последнее сообщение. Если сервер появляется после сбоя, я хочу, чтобы сервер получал последнее сообщение от клиента.Как отправлять последнее сообщение на сервер с помощью NetMQ/ZeroMQ?

Пока сервер не работает, я хочу, чтобы клиент продолжал обрабатывать и отправлять сообщения или atlest помещать их в очередь (с длиной одного сообщения).

Я пытаюсь использовать NetMQ/ZeroMQ для этого. Как это можно сделать?

Спасибо!

ответ

2

Первое использование PubSub, где клиент является издателем, с PubSub вы получите только сообщения в Интернете, если абонент (сервер в вашем случае) был вниз он пропустил все сообщения (например, радио)

ZeroMQ также имеет функцию под названием приравнивать (NetMQ не еще, вы можете портировать его), посмотрите на следующий вопрос:

ZeroMQ: I want Publish–Subscribe to drop older messages in favor of newer ones

также описание приравнивать из ZeroMQ документации:

ZMQ_CONFLATE: сохранить только последнее сообщение. Если установлено, сокет должен хранить только одно сообщение в своей входящей/исходящей очереди, это сообщение является последним полученным сообщением/последним сообщением, которое необходимо отправить. Игнорирует опции «ZMQ_RCVHWM» и «ZMQ_SNDHWM». Не поддерживает многочастные сообщения, в частности, только одна часть его хранится во внутренней очереди сокета.