C# Odata Wcf数据服务.NET客户端事件通知

C# Odata Wcf数据服务.NET客户端事件通知,c#,wcf,odata,wcf-data-services,C#,Wcf,Odata,Wcf Data Services,当服务器端的某些数据发生更改时,我尝试在客户端实现事件通知,这样客户端就不必每次轮询。早些时候,我在这里使用WCF服务,使用双工通道和回调契约,如果发生了什么事情,可以通知客户机 [ServiceContract(CallbackContract = typeof(ILatchingEvent))] 但我不确定它应该如何在WCF数据服务中实现?有人试过这个吗 我听说过Azure的通知中心提供推送通知,但如果不在.NET客户端中使用它,我不知道如何实现它 非常感谢您的帮助 我想客户端是在Wind

当服务器端的某些数据发生更改时,我尝试在客户端实现事件通知,这样客户端就不必每次轮询。早些时候,我在这里使用WCF服务,使用双工通道和回调契约,如果发生了什么事情,可以通知客户机

[ServiceContract(CallbackContract = typeof(ILatchingEvent))]
但我不确定它应该如何在WCF数据服务中实现?有人试过这个吗

我听说过Azure的通知中心提供推送通知,但如果不在.NET客户端中使用它,我不知道如何实现它


非常感谢您的帮助

我想客户端是在Windows上运行的

若客户端是传统的桌面应用程序,那个么推送通知就不起作用


如果客户端是Windows应用商店应用程序,请阅读以开始使用Azure通知中心

好的,我假设您正在使用桌面客户端和WCF数据服务。 所以,我认为从WCF数据服务获取事件是不可能的(虽然我不确定),但您不能将WCF服务和ODATA结合起来以实现您的目标吗

步骤:

1) 如您在问题中所提到的,在接口上设置WCF服务双工通道和回调

2) 创建另一个用于注册事件的接口

3) 现在,如果客户端已注册,则可以使用WCF服务生成事件

4) 现在,当在客户端触发事件时,您可以调用ODATA数据服务上的服务操作


我希望这会有所帮助:)如果您需要代码方面的帮助,请告诉我。

我完全同意您的意见,这就是我所读到的。但是,难道没有其他方法在客户端触发事件吗。我确信应该有一些技巧,或者可能是我错了……有一些框架,比如signar,可以解决基于浏览器的客户端的推送到客户端场景。正如MKMohanty所描述的,WCF回调也可用于桌面应用程序。对于移动平台而言,本机推送通知系统似乎更高效,Azure通知中心在这方面可能会有所帮助。所以,具体的解决方案取决于您所拥有的。谢谢您的回复,我问这个问题是因为我是ODATA的新手,并且认为ODATA中应该有一些机制用于桌面客户端的事件通知。但现在我想我不得不接受你和MKMohanty提出的替代方案,这似乎是一个有效的解决方案,但正如我在问题中提到的,我只使用WCF数据服务,仅仅使用数据服务是不可能的。我与Odata的合作不多,正如我在中提到的,我不确定是否可以在Wcf数据服务中生成事件通知,根据我查看的文档,我没有找到任何关于事件通知的内容。