首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用signalR向特定员工发送通知

如何使用signalR向特定员工发送通知
EN

Stack Overflow用户
提问于 2014-10-02 08:12:28
回答 3查看 1.3K关注 0票数 0

我正在做一个客户关系管理( crm ),在这个客户关系管理系统中,乔布斯被自动分配给员工,当一个职务被创建时,应用程序会寻找拥有最大空闲时间的员工。我能够向所有员工发出广泛的通知,但我想知道如何向工作是assigned.Just的员工发送通知,就像facebook一样,每个用户只收到他的通知。

代码语言:javascript
复制
   Clients.All.broadcastMessage( message);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-02 08:33:55

您现在正在向每个人广播您的信息,我建议您使用Clients.User(userid)

获取当前登录用户string userName = HttpContext.Current.User.Identity.Name;

然后,要向特定用户发送通知,您可以使用以下内容。

Clients.User(userName).broadcastMessage(message);

票数 1
EN

Stack Overflow用户

发布于 2014-10-02 08:23:32

您必须根据connectionId识别用户。

这里有一篇很好的博客文章描述了这一点:

http://www.tugberkugurlu.com/archive/mapping-asp-net-signalr-connections-to-real-application-users

票数 0
EN

Stack Overflow用户

发布于 2014-10-02 08:52:12

就在三天前,我还在为这件事苦苦挣扎,终于让它起作用了。

假设您有一个名为YourHub的集线器类,您的javascript代码应该如下所示

代码语言:javascript
复制
$(function () {
    var yourHub = $.connection.YourHub;
    yourHub.client.OnMessage = function ( message) {
        console.log(message):
    };
});

然后,您需要在服务器上实现IUserIdProvider,该服务器接收一个IRequest (应该有一个cookie或其他东西供您识别人员),并实现该方法。

代码语言:javascript
复制
public string GetUserId(IRequest request)

然后,正如伊兹告诉您的那样,使用Clients.User( userId ).OnMessage(message),其中userId是您在GetUserId上返回的id,OnMessage是您的javascript文件中的方法。小心使用Clients.User(userId)而不是Clients.Client(userId)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26156742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档