Вы используете неправильные сокеты и/или направление сообщений. Мне было бы легче понять, что вы хотели бы сделать, если напишете, для чего используете сокет. Предполагая, что вы хотите использовать разъемы Дилера и Маршрутизатора, тогда вы должны отправить сообщение в другом направлении (Дилер => Маршрутизатор).
Разъем Router соединяет множество входов с одним выходом или одним входом для многих выходов. Это делается путем добавления/удаления идентификатора сообщения, который описывает, откуда он пришел или куда он должен идти.
Итак, в случае, когда вы пытаетесь отправить сообщение с маршрутизатора, сокет маршрутизатора попытается удалить идентификатор из сообщения, чтобы он мог понять, к какому соединению он должен отправить сообщение. Поэтому, если вы действительно этого хотите, вам нужно связать свое дилерское соединение с идентификатором, а затем добавить его к сообщению, которое вы отправляете через маршрутизатор. Но я уверен, что вы действительно хотите использовать другую комбинацию zmq сокетов.
Скорее, я хочу отправить сообщение указанному пользователю. – alanyao
И я отказался, проблема должна быть решена. У вас есть лучшее предложение? – alanyao
Спасибо, sammygadd. Я нашел ответ. [GitHub] (https://github.com/zeromq/jeromq/issues/79) – alanyao