첫째로 : 우리가 설명하려고하는 문제에 대한 해결 방법이 있지만 그냥 옳지 않다고 생각합니다.알림이있는 클라이언트/서버에 대한 WCF 모범 사례
우리에게는 하나의 응용 프로그램 서버와 약 30-100 개의 클라이언트가있는 응용 프로그램이 있습니다. 서버를 확장해도 문제가되지 않습니다. 가장 중요한 것은 서버에서 클라이언트까지의 알림이지만 클라이언트에서 서버로 호출 할 서비스 메소드도 있습니다.
이제 우리는 콜백 채널을 사용하여 서비스 계약을 만들고 서비스에 클라이언트를 등록한 다음 (즉, 서비스에 활성 콜백 채널 목록 포함) 해당 콜백 채널을 통해 알림을 보냅니다.
문제는 우리가 주변 탐색 할 필요가 있었다 :
가 연결의- 타임 아웃 - 서비스가 지금은 매 순간에 대한 클라이언트에 의해 핑 일부 연결 유지 방법을 포함
- 다시 연결 클라이언트를 서버 또는 네트워크 오류 후 - 제가 염려하는 요점은 무엇입니까. 현재 서비스와 호출 된 콜백 객체를 호출하여 수신 된 통지를 처리하기 위해 장기 실행 클라이언트 객체 (서비스 참조,
DuplexClientBase
에서 상속)가 있습니다.client.Faulted
에 우리는 서버에 다시 도달 할 수있을 때까지 클라이언트와 콜백 객체를 새로 생성 된 클라이언트로 교체하려고합니다. 이 방법은 꽤 이상한 예외 처리를 포함 ...
질문 :는 각 클라이언트에 WCF 서비스를 시작하고 서버에서 각 클라이언트의 엔드 포인트를 등록하는 것이 더 있을까? 설명 된 두 가지 문제에 대한 더 나은 해결책이 있습니까?
편집 : 요점은 무엇입니까? - 설명 된 아키텍처가 매우 일반적이어야한다고 생각하며이를 수행하기위한 "기본"최상의 방법을 찾고 있습니다. 이런 종류의 설정을위한 샘플이 있습니까?