각 클라이언트는 한 번에 하나의 요청 만 처리한다고 가정합니다.
이것이 가능합니까?
예 (소켓 유형이 다르지만).
어떻게 보입니까?
(C에서)
은 무엇 당신이하실 수 있습니다 것은 ZMQ_ROUTER 소켓에 외부 서버 소켓에 ZMQ_REP 소켓에서 변화이다. 라우터/딜러 소켓에는 ID가있어 파이프 라인에서 여러 요청을 처리하고 각 요청에 대해 올바르게 응답 할 수 있습니다.
비동기 클라이언트/서버 패턴 :
http://zguide.zeromq.org/php:chapter3#The-Asynchronous-Client-Server-Pattern
이의 유일한 장애는 당신이 ZMQ 메시지의 여러 부분을 관리하는 데 필요한 것입니다. 첫 번째 부분은 ID입니다. 둘째는 null입니다. 셋째는 데이터입니다. REQUEST와 동일한 순서로 응답하는 동안 신원은 응답 데이터를 올바른 클라이언트로 안내합니다.
struct msg {
zmq_msg * identity;
zmq_msg * nullMsg;
zmq_msg * data;
};
메시지를 수신 할 때 zmq_msg_more 사용하고 정확하게 보낼 때 더 플래그를 설정해야합니다 : 나는 구조체 내 요청을 감쌌다.
밀어 넣기/끌기가 REP 소켓을 다시 보낼 클라이언트 주소를 보존할지 확신 할 수 없습니다.
정확합니다. 푸시 풀 패턴은 여러 클라이언트간에 리턴 주소를 지정할 수 없습니다.