新しい通知があるたびにユーザーに通知する通知システムを作成しました。
現在、以下のクライアントサイドスクリプトでは、毎秒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());
}