2014-10-13 3 views
1

클라이언트가 매번 폴링 할 필요가 없도록 일부 데이터가 서버 측에서 변경되면 클라이언트에 이벤트 알림을 구현하려고합니다. 이전에 이중 채널 및 콜백 계약을 통해 WCF 서비스를 사용하여 클라이언트에게 상황이 발생할 경우이를 알릴 수있었습니다.Odata Wcf 데이터 서비스 .NET 클라이언트 이벤트 알림

[ServiceContract(CallbackContract = typeof(ILatchingEvent))] 

그러나 WCF 데이터 서비스에서 어떻게 구현해야하는지 잘 모르겠습니다. 아무도 이것을 시도한 적이 있습니까?

푸시 알림을하는 Azure의 알림 허브에 대해 들어 봤지만 .NET 클라이언트에서 사용하지 않고 구현하는 방법을 알지 못합니다.

도움을 주시면 감사하겠습니다.

답변

1

좋아요. 데스크톱 클라이언트 및 WCF 데이터 서비스를 사용하고 있다고 가정합니다. 그래서 WCF 데이터 서비스에서 이벤트를 가져올 수 없다고 생각하지만 WCF 서비스와 ODATA를 결합하여 목표를 달성 할 수는 없습니다.

단계 : 당신이 당신의 질문에서 언급 한 바와 같이

1) 인터페이스에 WCF 서비스 이중 채널 및 콜백을 확인합니다.

2) 이벤트 등록을위한 다른 인터페이스를 만드십시오.

3) 이제 클라이언트가 등록되어 있으면 WCF 서비스를 사용하여 이벤트를 생성 할 수 있습니다.

4) 이제 클라이언트 측에서 이벤트가 발생하면 ODATA 데이터 서비스에서 서비스 작업을 호출 할 수 있습니다.

나는 이것이 도움이되기를 바랍니다 :) 만약 당신이 코드에 도움이 필요하면 알려주십시오.

+0

유효한 솔루션으로 보이지만 WCF 데이터 서비스 만 사용한다는 질문에서 언급했듯이 데이터 서비스만으로는 불가능합니다. – ThomasBecker

+1

오다타에서 많은 일을하지 않았고, 내가 언급 한 문서에 따르면 Wcf 데이터 서비스에서 이벤트 알림을 생성 할 수 있는지 확실하지 않지만 이벤트 알림에 대해서는 찾지 못했습니다. – MKMohanty

0

클라이언트가 Windows에서 실행된다고 가정합니다.

클라이언트가 기존 데스크톱 응용 프로그램 인 경우 밀어 넣기 알림이 작동하지 않습니다.

클라이언트가 Windows Store 응용 프로그램 인 경우 this article을 읽고 Azure Notification Hubs를 시작하십시오.

+0

나는 당신의 의견에 절대 동의합니다. 그러나 클라이언트 측에서 이벤트를 발생시키는 또 다른 방법은 없습니다. 나는 거기에 어떤 트릭이 있어야하거나 내가 틀렸을 수도 있습니다 ... – ThomasBecker

+0

브라우저 기반 클라이언트에 대한 푸시 투 클라이언트 시나리오를 해결할 수있는 SignalR과 같은 프레임 워크가 있습니다. 또한 MKMohanty에서 설명한대로 데스크톱 응용 프로그램에 WCF 콜백을 사용할 수 있습니다. 모바일 플랫폼의 경우 고유 푸시 알림 시스템이 더 효율적으로 보이며 Azure Notification Hubs가 여기에서 도움이 될 수 있습니다. 따라서 특정 솔루션은 보유하고있는 솔루션에 따라 다릅니다. – efimovandr

+0

답장을 보내 주셔서 감사합니다. 나중에 ODATA에 새로 왔으며 데스크톱 클라이언트에 대한 이벤트 알림을 위해 ODATA에 일부 메커니즘이 있어야한다고 생각하여이 질문을 던졌습니다. 하지만 이제는 당신과 MKMohanty가 말한 대체 솔루션을 해결해야만한다고 생각합니다. – ThomasBecker

관련 문제