Общий сокет ZMQ PHP

Как создать общий сокет ZMQ с помощью PHP? Сценарий

  1. Пользователь 1 входит в систему — происходит привязка ZMQ, и пользователь остается в системе.
  2. Пользователь 2 входит в систему — возникает исключение привязки из-за того, что адрес сокета уже используется

Как нам решить эту проблему с помощью ZMQ?


person Tamil    schedule 20.10.2011    source источник
comment
Вам действительно следует добавить язык программирования в качестве тега к вашему вопросу.   -  person ZeissS    schedule 31.10.2011


Ответы (2)


Я думаю, вы хотите использовать bind() для одного процесса и connect() для другого.

Из руководства ZMQ http://zguide.zeromq.org/page:all:

Чтобы создать соединение между двумя узлами, вы используете zmq_bind(3) на одном узле и zmq_connect(3) на другом. Как правило, узел, выполняющий zmq_bind(3), является «сервером», расположенным на известном сетевом адресе, а узел, выполняющий zmq_connect(3), является «клиентом» с неизвестной или произвольной сетью. адреса. Таким образом, мы говорим, что мы «привязываем сокет к конечной точке» и «подключаем сокет к конечной точке», при этом конечной точкой является хорошо известный сетевой адрес.

person gneeek    schedule 17.02.2012

Ответом на этот вопрос является этот пост в SO

Метод: ZMQContext::getSocket ( integer $type [, string $persistent_id = null [, callback $on_new_socket = null ]] )

Ярлык для создания новых сокетов из контекста. Если контекст не является постоянным, параметр persist_id игнорируется, и сокет снова становится непостоянным. on_new_socket вызывается только при создании новой базовой структуры сокета.

person Tamil    schedule 25.07.2012