all-to-all 통신을하는 가장 좋은 방법은 모든 사람들과 구독하는 모든 사람들과 pub-sub를하는 것이 가장 좋을지, 아니면 이?Zeromq Broadcast All to All
3
A
답변
5
XPUB/XSUB 프록시로이를 수행 할 수 있습니다. 많은 고객이 다른 많은 고객과 이야기하고 있습니다. 가이드 here의 개요.
프록시 프록시 대다 클라이언트를 연결하는 중개 역할; 예 : expresso.c. 프록시는 독립 실행 :
void *subscriber = zsocket_new (ctx, ZMQ_XSUB);
zsocket_bind (subscriber, "tcp://*:6000");
void *publisher = zsocket_new (ctx, ZMQ_XPUB);
zsocket_bind (publisher, "tcp://*:6001");
zmq_proxy (subscriber, publisher, 0);
클라이언트
클라이언트가 동시에 게시자와 구독자의 역할을한다. 주 스레드에서 pub 소켓을 만들고 프록시의 XSUB쪽에 연결하십시오. 메시지를 보낼 때 사용하십시오.
void *subscriber = zsocket_new (ctx, ZMQ_SUB);
zsocket_connect (subscriber, "tcp://localhost:6001");
클라이언트가 메시지를 게시
는, 모든 클라이언트가 XSUB에서 수신 :void *publisher = zsocket_new (ctx, ZMQ_PUB);
zsocket_connect (publisher, "tcp://localhost:6000");
지금, 당신은 XPUB에 프록시에서 메시지를 수신하는 클라이언트의 자식 스레드를 생성 할 수 있습니다 그 메시지를 보낸 클라이언트를 포함하여 그것을 얻을 것이므로 그것을 명심하십시오.
양방향 메시징이 필요하지 않은 경우 PubClient 및 SubClient를 구현하십시오. 각 PubClient 및 SubClient는 전송 또는 수신을 위해 의도 된 역할을 수행하지만 두 가지 모두를위한 것은 아닙니다. 위의 클라이언트 코드는 그 접근법에 대해 단순히 두 개의 클래스로 분리됩니다.
또 다른 방법이 있지만 가장 간단합니다. 도움 받기를 바랍니다.
관련 문제
- 1. ALL
- 2. NSOperation to all runs 결과적으로
- 3. 신뢰할 수있는 네트워크 all-to-all 통신 : 메시지 버스 또는 게시/구독 또는 멀티 캐스트/PGM?
- 4. 사용자가`All`
- 5. ext-all-debug.js 대 ext-all-dev.js
- 6. Outlook Addin to all 참석자에게 업데이트 보내기
- 7. Port (find, all) to java 모델들
- 8. LINQ의 "apply-to-all"메서드가 Select입니까?
- 9. caches_page : all
- 10. 는 --all
- 11. UNION ALL
- 12. Git/Gerrit repo1 to repo2 to all branches
- 13. 레일스에 대한 액티브 레코드 쿼리 업데이트 3.2 format : find (: all) to all
- 14. git --all missing commit
- 15. 이 특정 스크립트에서 all/collapse all 단추를 확장하는 방법은 무엇입니까?
- 16. 메이크 파일에서 "all-before"와 "all-after"의 의미
- 17. X-Frame-Options 특정 사이트에서 허용 all from all
- 18. SSRS - 파라미터 - ALL ALL 대 선택 - 모든 옵션
- 19. 플래시 removeMovieClip ALL
- 20. javascript map all paths
- 21. Jenkins job all time
- 22. SQL 얻는 방법 = "all"
- 23. SALESFORCE QUERY ALL - NoClassDefFoundError
- 24. .all() 해결 함수 AngularJS
- 25. MongoDB $ all/$ elemMatch 비애
- 26. Hpple-All Nodes는 080입니다.
- 27. 팬더 인쇄 ALL dtypes
- 28. Lisp 역방향 "all"함수
- 29. symfony doctrine : build --all
- 30. * all * hamiltonian 경로를 열거하십시오.