ASP通知机制

时间:2013-12-20 22:16:00

标签: c# javascript asp.net database notifications

我正在创建一个网站,人们可以互相添加为朋友。

例如,我有2个用户:

User ONE with UserID = 1
User TWO with UserID = 2

User One添加User Two时,我将其写入数据库,并使用整数来跟踪状态:

0 = waiting 1 = accepted (are now friends)

如果被拒绝 - >我只是从数据库中删除该记录。

User One添加User Two时,我想向User Two发送通知。

所以User Two应该收到关于User One添加了他的通知,而不刷新页面。

将某人添加为朋友后,我可以使用哪些方法创建通知?

在添加记录后,我是否应该在数据库上查找某种触发器向网站发送内容,或者是否有其他机制供您推荐我使用?

这是一个没有MVC的ASPX网站。

我想用于消息系统的机制相同。

2 个答案:

答案 0 :(得分:1)

实现这一目标有三种方法,从最简单到最复杂:

  1. 轮询
    每隔x分钟编写一个在您的网站上调用休息服务的javascript,并更新页面的DOM

  2. 长轮询
    与轮询类似,但保持开放式连接即可立即回复而无需在民意调查之间等待。需要有一个api,可以在服务器上保留一个开放连接池和后台线程,轮询数据库中的更改,如果需要,它可以渗透到javascript

  3. 网络插座
    将连接升级为完全双向连接(websocket协议)。与长轮询服务器端类似。

  4. 正如您所看到的,除了1.之外的任何其他选项都相当复杂,但您可以查看SingalR library以开始使用。

答案 1 :(得分:0)

您可以使用AJAX轮询数据库以获取此类更新,AJAX主要用于通过异步操作来避免表单提交。

这是一个简单的jQuery AJAX轮询示例:

function doPoll(){
    $.post('ajax/test.html', function(data) {
        alert(data);  // process results here
        setTimeout(doPoll,5000);
    });
}

另外,正如Brad M评论的那样,您可以将“朋友”表“缓存”到内存中并对其进行轮询而不是数据库 - 它会更快。