2010-04-26 4 views
9

지금까지 아무도 이중 채널에서 얻을 수있는 즉각적인 알림을 제외하고는 클라이언트 폴링 시스템을 통해 이중 채널을 사용할 때 어떤 이점도 제공 할 수 없습니다. 다른 점은 즉각적인 고지가 필요 없다면 이중 구속력이 부정적인 가치를 제공한다는 것입니다 - 누구나 이에 동의하지 않습니까?WCF에서 WSDualHttpBinding의 이점은 무엇입니까?

IIS 호스팅 서비스에서 WSDualHttpBinding을 사용하는 것보다 WCF 서비스를 호출하는 클라이언트 폴링을 사용하는 것이 얼마나 도움이 될까요? 후자는 해당 데이터가 해당 데이터를 캐시한다고 가정합니다.

이 scenerio는 이벤트가 발생할 때 클라이언트가 서비스에 의해 통지되어야하는 통지 유형의 서비스를위한 것입니다.

특히 WSDualHttpBinding이 폴링보다 어떤 이점을 제공합니까? 예 : 네트워크 트래픽 감소, 설계 속도 향상, 유지 관리 용이, 제어 향상 ???

내가 아는 바로는 WSDualHttpBinding은 클라이언트 폴링보다 확장 성이 낮 으면서 왜 사용합니까? 편집 : Matt가 제공 한 것처럼, 시간이 중요한 것은 양면 바인딩의 한 가지 이유가 될 수 있습니다. 여기

내가 지금까지 무엇을 가지고 :

WSDualHttpBinding

ADV :

창피를 WsHttpBinding과보다 확장 성 : 폴링 타이머

창피를 기다리고 O를/w 즉각적인 응답을 얻을 수 있습니다 : 덜 방화벽 친화적 인 방화벽

dis : WSHttpBinding보다 느림

의견에 따라 추가하겠습니다. 잘못 기재 한 경우 알려주십시오.

답변

8

:-) 당신이 입력

감사 this SO thread에서 많은 정보를 얻을 수 있습니다. 기본적으로 폴링은 클라이언트가 마지막 폴링과 같은 최신 상태이므로 시간이 중요한 정보의 경우 폴링 빈도를 늘려야합니다. 각 폴은 네트워크 자원을 사용하여 클라이언트에 오버 헤드를 만듭니다. 긴 폴링 및 WSDualHttpBinding 같은 솔루션은 해당 문제의 해결 방법입니다. WSDualHttpBinding은 클라이언트가 서버에 엔드 포인트를 노출해야한다는 단점이 있습니다 (방화벽 환경에서 문제를 만듭니다). BOSH/XMPP 또는 다른 형태의 긴 폴링이 또 다른 대안입니다.

+0

wshttpbinding :-)의 장점 중 하나 인 것 같습니다. – schmoopy

4

WSDualHttpBinding은 이유 때문에 만들어졌습니다. WCF는 서비스 '콜백'에 대한 지원을 제공했습니다. 이는 서비스 실행이 완료 될 때마다 통보 된 클라이언트의 메소드입니다. 불행하게도 HTTP는 단방향 채널이므로 콜백을 허용하지 않습니다 (대조적으로 TCP는 전이중 채널이므로 TCP 바인딩을 사용합니다). HTTP의 단방향 특성을 해결하기 위해 DualHttpBinding이 발명되었습니다. 즉, 두 개의 HTTP 연결이 동시에 열려 있습니다 (하나는 서비스 요청 용이고 다른 하나는 콜백 용입니다). 확장성에 대한 문제는 아니지만 필요합니다. 콜백을 사용하려는 경우 (특히 서비스가 시간이 오래 걸리는 서비스 인 경우) 콜백을 사용하면 WSDualHttpBinding이 최상의 옵션 일 수 있습니다. 폴링은 이미 지적한 이유 때문에 최악의 경우 일 수 있습니다 - 각 폴링은 네트워크 자원 등을 사용합니다.