我正在从事一项工作,该工作将自动分配给员工,创建工作时应用程序将寻找最大空闲时间的员工。我可以广泛投送通知给所有的员工,但我想知道如何发送通知,针对其工作是assigned.Just像Facebook员工每个用户临危他通知only.I我集线器类使用此语句如何使用信号将通知发送给特定员工R
Clients.All.broadcastMessage(message);
我正在从事一项工作,该工作将自动分配给员工,创建工作时应用程序将寻找最大空闲时间的员工。我可以广泛投送通知给所有的员工,但我想知道如何发送通知,针对其工作是assigned.Just像Facebook员工每个用户临危他通知only.I我集线器类使用此语句如何使用信号将通知发送给特定员工R
Clients.All.broadcastMessage(message);
您正在广播的消息给大家,我建议你使用Clients.User(userid)
获取当前登录的用户string userName = HttpContext.Current.User.Identity.Name;
然后发送通知给特定的用户,你可以有类似的东西。
Clients.User(userName).broadcastMessage(message);
你不得不承认用户取决于connectionId。
这里是一个很好的博客文章描述的:
http://www.tugberkugurlu.com/archive/mapping-asp-net-signalr-connections-to-real-application-users
我这个只有3天前挣扎,终于得到了它的工作。
假设你有一个名为YourHub集线器类,你的JavaScript代码看起来应该是这样
$(function() {
var yourHub = $.connection.YourHub;
yourHub.client.OnMessage = function (message) {
console.log(message):
};
});
然后,你需要实现服务器,其接收IRequest上IUserIdProvider(应该有一个cookie或东西您识别人),且实施方法
public string GetUserId(IRequest request)
然后作为的Izzy告诉你使用Clients.User(用户ID).OnMessage(消息) 其中userid是您在GetUserId和的onMessage返回id是方法你的JavaScript文件。 要小心使用Clients.User(userId)而不是Clients.Client(userId)
它可能会让你感到烦恼,因为我是signalR的新手。 – killer 2014-10-02 09:22:03