gpt4 book ai didi

c# - 支持 Ajax 的 WCF 服务 - 实现观察者设计模式

转载 作者:行者123 更新时间:2023-11-30 17:59:03 26 4
gpt4 key购买 nike

我创建了一个通知系统,每次有新通知时都会通知用户。

目前在我下面的客户端脚本中,我每秒调用一次 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());
}

最佳答案

您是否依赖于使用 WCF? SignalR可能更适合这种推送通知。

更新:澄清一下; SignalR 抽象了一种机制,供服务器将数据推送到多个客户端,其中之一是 JavaScript。在客户端上,您可以 Hook 处理通知的事件处理程序当通知管理器发送时...

干杯,院长

关于c# - 支持 Ajax 的 WCF 服务 - 实现观察者设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11602793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com