2014-12-15 3 views
0

Я использую шаблон: маршрутизатора-дилерскийКак восстановить Дилер в ZeroMQ

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

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

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

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

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

Спасибо.

ответ

0

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

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

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

+0

Скорее, я хочу отправить сообщение указанному пользователю. – alanyao

+0

И я отказался, проблема должна быть решена. У вас есть лучшее предложение? – alanyao

+0

Спасибо, sammygadd. Я нашел ответ. [GitHub] (https://github.com/zeromq/jeromq/issues/79) – alanyao

Смежные вопросы