我创建了一个通知系统,每次有新通知时都会通知用户。
目前在我下面的客户端脚本中,我每秒调用一次 Web 服务调用来 ping 服务器以获取新通知。每次有新通知时,我如何能够让启用 Ajax 的 WCF 通知客户端?
是否有人有任何资源、建议或教程来使用支持 Ajax 的 WCF 实现观察者设计模式?
*注意:使用观察者模式可能不是实现这一点的最佳方式,任何关于最佳模式的建议(可能是我当前的实现)都非常感谢。
客户端:
$(document).ready(function () {
self.setInterval("getNewNotificationsCount()", 1000);
});
function getNewNotificationsCount() {
$.ajax({
type: "POST",
url: site_root + "services/NotificationService.svc/json/GetNewNotificationsCount",
contentType: "application/json; charset=utf-8",
data: {},
dataType: "json",
error: function (request, error, u) {
alert('error: ' + error);
},
success: function (result, status) {
$('#hip_badge').text(result.d);
}
});}
通知服务
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class NotificationService {
{
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json)]
public int GetNewNotificationsCount()
{
NotificationManager nm = new NotificationManager();
return nm.getNewNotifications(GetUserName());
}