【发布时间】:2012-02-27 16:29:49
【问题描述】:
我想在 ASP.NET MVC 3 中实现一个类似于 facebook 的通知系统:通知被发送给特定用户,以通知他对他的一个项目进行操作。
信号器是否适合这种要求? 我如何使用 SignalR 向特定用户(该用户的所有打开的会话)发送通知?
编辑
好的,这就是我所做的
在客户端
$(function () {
// Proxy created on the fly
var chat = $.connection.chat;
var username = '@Html.ViewContext.HttpContext.User.Identity.Name';
// Declare a function on the chat hub so the server can invoke it
chat.addMessage = function (message) {
$('#messages').append('<li>' + message + '</li>');
};
// Start the connection
$.connection.hub.start(function (){
chat.join(username);
});
});
在服务器端
public class Chat : Hub
{
public void Join(string username)
{
AddToGroup(username);
}
}
每次我需要通知控制器中的用户时,我都会执行以下操作:
IConnectionManager connectionManager = AspNetHost.DependencyResolver.Resolve<IConnectionManager>();
dynamic clients = connectionManager.GetClients<Chat>();
clients[username].addMessage("test");
【问题讨论】:
标签: asp.net asp.net-mvc-3 push-notification signalr