我正在做一个客户关系管理( crm ),在这个客户关系管理系统中,乔布斯被自动分配给员工,当一个职务被创建时,应用程序会寻找拥有最大空闲时间的员工。我能够向所有员工发出广泛的通知,但我想知道如何向工作是assigned.Just的员工发送通知,就像facebook一样,每个用户只收到他的通知。
Clients.All.broadcastMessage( message);发布于 2014-10-02 08:33:55
您现在正在向每个人广播您的信息,我建议您使用Clients.User(userid)
获取当前登录用户string userName = HttpContext.Current.User.Identity.Name;
然后,要向特定用户发送通知,您可以使用以下内容。
Clients.User(userName).broadcastMessage(message);
发布于 2014-10-02 08:23:32
您必须根据connectionId识别用户。
这里有一篇很好的博客文章描述了这一点:
http://www.tugberkugurlu.com/archive/mapping-asp-net-signalr-connections-to-real-application-users
发布于 2014-10-02 08:52:12
就在三天前,我还在为这件事苦苦挣扎,终于让它起作用了。
假设您有一个名为YourHub的集线器类,您的javascript代码应该如下所示
$(function () {
var yourHub = $.connection.YourHub;
yourHub.client.OnMessage = function ( message) {
console.log(message):
};
});然后,您需要在服务器上实现IUserIdProvider,该服务器接收一个IRequest (应该有一个cookie或其他东西供您识别人员),并实现该方法。
public string GetUserId(IRequest request)然后,正如伊兹告诉您的那样,使用Clients.User( userId ).OnMessage(message),其中userId是您在GetUserId上返回的id,OnMessage是您的javascript文件中的方法。小心使用Clients.User(userId)而不是Clients.Client(userId)
https://stackoverflow.com/questions/26156742
复制相似问题