그래서 짧은 대답은 예입니다 - 게시/구독 패턴을 사용하여 매우 잘 알려진 모델입니다. 게시자와 소비자를 분리하는 데 도움이됩니다. Devil은 구현의 세부 사항과 복잡성을 처리 할 수 있으며 디자인에서 무엇을 교환 할 의지가 있습니다.
WCF duplex channel 구현 (WCF 클라이언트 여야 함, 클라이언트와 서비스 소유 여야 함) 및 제한 사항 (직접 연결된 클라이언트, 네트워크 토폴로지 제한 사항)을 받아 들일 수 있다면 WCF duplex channel 구현부터 시작할 수 있습니다.
듀플렉스 채널의 제한 사항이 마음에 들지 않으면 MSMQ 또는 NServiceBus과 같은 것을 사용하여 pub/sub 요구 사항을 쉽게 처리 할 수 있습니다. Windows Azure AppFabric Service Bus으로 다음 단계로 넘어갈 수 있습니다.
듀플렉스는 클라이언트로부터의 호출이 도착했을 때뿐만 아니라 독립적으로 클라이언트에 메시지를 보낼 수 있습니다.
듀플렉스는 내구성이 없습니다. 클라이언트가 없어지거나 통신 문제가 발생하면 채널 장애를 복구해야합니다. 양면 인쇄 보안은 까다로울 수 있습니다. 양쪽에 WCF 클라이언트/서비스가 있어야합니다. 네트워크 토폴로지에 대해 알고 있어야합니다.
두 개의 서로 다른 바운드 컨텍스트 (시스템)가 있습니다. 하나는 클라이언트가 명령과 쿼리를 보내고 다른 하나는 흥미로운 이벤트를 게시하고이 이벤트를 청취하기위한 것입니다.
EDIT - 일부 클라이언트가 iOS 기기 인 경우 어떻게해야합니까? DUPLEX 사용시 문제가 있습니까? DUPLEX 채널을 통해 WCF 서비스와 통신하는 iOS 앱을 개발할 수 있습니까?
답변 :이 SO WCF duplex connection on iPhone? 및 What should I know when developing interoperable WCF web service?
안녕하세요! 답변 해주셔서 감사합니다. 그래서 실제로 2 가지 서비스를 권하고 싶습니다. 하나는 '당기기'기능 용이고 다른 하나는 '푸시'기능 용입니다. 그렇다면 듀플렉스의 한계에 대해 좀 더 자세히 설명 할 수 있습니까? 클라이언트는 어떻게 결합되었으며 네트워크 토폴로지의 한계는 무엇입니까? 내가 보낸 링크를 보았습니다.이 링크를 '목록 기반 게시 - 구독'이라고하지만 목록이 표시되지 않습니다. 가격을 업데이트해야 할 때 - 이벤트가 제기 된 것처럼 보이는데 등록 된 모든 클라이언트를 호출합니다 (이것이 'PerSession'인 경우 어떻게 될 수 있습니까? 서비스가 싱글 톤이 아니어야합니다). –
또한 서비스가 응답이 아닌 클라이언트를 직접 호출하는 것처럼 보입니다.콜백은 서비스가 클라이언트에서 함수를 호출 할 수 있다는 것을 의미합니다. 클라이언트가 클라이언트에 보낸 메시지에 대해서만 응답을 보내고 독립적으로 클라이언트에 메시지를 보내지는 않습니다. –
anwer에 추가되었습니다 –