2014-12-18 2 views
0

WCF를 통해 통신하고 기본적으로 클라이언트/서버 모델을 따르는 두 개의 Winform 응용 프로그램 (각각 다른 컴퓨터에서 실행)이 있습니다. 클라이언트는 채널에서 JSON 패킷을 보내고 WCF 서비스는 들어오는 요청을 처리합니다. WCF 서비스에는 서비스가이 새로운 들어오는 패킷을 수신 할 때 트리거되는 사용자 지정 이벤트 처리기가 있으며 서버 응용 프로그램은 이러한 이벤트를 구독하여 알림을받을 수 있습니다. 이벤트 핸들러가 실행되면 파싱 된 JSON 패킷을 서버 응용 프로그램으로 전달하고 서버 응용 프로그램 UI를 잠그지 않도록 백그라운드 작업자를 사용하여 별도의 스레드에서 실행되는 긴 프로세스를 실행합니다. 그래서 ... 나는 그 모든 것들을 작동 시켰어.WCF 클라이언트 콜백

그러나 지금해야 할 일은 backgroundworker 스레드가 프로세스를 완료 할 때마다 모든 정보가 완료되었음을 알리기 위해 클라이언트에게 콜백 메시지를 보내는 방법을 찾는 것입니다. 서버는 원래 보낸 JSON 패킷의 일부로 해당 속성을 추가했기 때문에 메시지를 보낸 클라이언트의 IP 주소를 알고 있습니다. 그러나이 인스턴스에서 클라이언트에게 정보를 다시 보내도록 서버를 얻는 방법을 모르겠습니다. 자습서를 끝내고 클라이언트가 데이터를 호스트 응용 프로그램에 보내는 데 사용하는 함수에 return 변수를 추가 할 수 있다는 것을 알고 있습니다. 그러나이 경우에는 작동하지 않을 것이라고 생각합니다. 반환 변수를 보내기 전에 별도의 스레드가 완료 될 때까지 기다려야합니다. 누구든지 제안을 할 수 있습니까?

답변

0

양방향 (클라이언트가 서비스를 보내고 구독 할 수 있음) 인 WCF Duplex Services을 찾고 있습니다.

MSDN의 워크 플로우는 How To: Create a Duplex Contract입니다.

+0

브래드 귀하의 게시물은 다음과 같은 대상이됩니까 _ [귀하의 답변은 다른성에 있습니다 : 답변은 답변이 아닙니까?] (http://meta.stackexchange.com/questions/225370/your-answer-is) -in-another-castle-when-is-an-answer-not-an-answer) _ 아마도 그것을 요약 할 수 있을까요? 감사 – MickyD