Как переподключить Дилера в Zeromq

Я использую шаблон: Маршрутизатор-дилер

Маршрутизатор постоянно отправляет сообщения дилеру(A).

Дилер только что получил сообщение (SOCKOPT_IDENTITY: A).

Работайте нормально в это время.

Затем
я нажимаю Ctrl-C, чтобы остановить Dealer , и снова подключаюсь. Теперь у меня ничего нет ~~

Что-то не так? Как я могу это исправить?

Спасибо.


person alanyao    schedule 15.12.2014    source источник


Ответы (1)


Вы используете неправильный тип сокетов и/или направление сообщений. Мне было бы легче понять, что вы хотели бы сделать, если бы вы написали, для чего вы используете сокет. Предполагая, что вы хотите использовать сокеты дилера и маршрутизатора, вы должны отправить сообщение в другом направлении (дилер => маршрутизатор).

Сокет маршрутизатора соединяет множество входов с одним выходом или один вход со многими выходами. Это делается путем добавления/удаления идентификатора к сообщению, который описывает, откуда оно пришло или куда оно должно идти.

Итак, в вашем случае, когда вы пытаетесь отправить сообщение с маршрутизатора, сокет маршрутизатора попытается удалить идентификатор из сообщения, чтобы он мог понять, по какому соединению он должен пересылать сообщение. Поэтому, если вы действительно этого хотите, вам нужно связать ваше дилерское соединение с идентификатором, а затем добавить его в сообщение, которое вы отправляете через маршрутизатор. Но я почти уверен, что вы действительно хотите использовать другую комбинацию сокетов zmq.

person sammygadd    schedule 15.12.2014
comment
Скорее я хочу отправить сообщение указанному пользователю. - person alanyao; 15.12.2014
comment
И я бросил вопрос, который должен быть решен. У вас есть лучшее предложение? - person alanyao; 15.12.2014
comment
Спасибо, Сэммигадд. Я нашел ответ. github - person alanyao; 15.12.2014