首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SignalR聊天中心中提取MVC用户身份数据

在SignalR聊天中心中提取MVC用户身份数据
EN

Stack Overflow用户
提问于 2014-08-10 03:52:08
回答 1查看 2K关注 0票数 0

为了在一个基本的本教程 MVC 4模板项目上添加一个ASP.NET MVC SignalR聊天页面,我虔诚地跟踪了ASP.NET。而不是使用本教程中的以下方法让用户向所有其他用户发送消息:

代码语言:javascript
复制
public void Send(string name, string message)
{
    Clients.All.addNewMessageToPage(name, message);
}

我创造了我自己的,如下:

public void Send(string senderName, string recipientName, string message)

此变体允许用户发送消息,以显式命名聊天室中的其他用户(我的用户必须登录聊天)。由于用户可以传递收件人的名称,我如何找到与该用户名相对应的客户端?换句话说,如何从我的ApplicationUser方法中找到具有UserName的已登录的Send

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-10 18:42:12

您确实可以将用户映射到连接ID,但在某些情况下,如果您想为特定用户调用函数,也可以使用User(string userId)方法,该方法存在于集线器中的客户端属性上:

代码语言:javascript
复制
public void Send(string senderName, string recipientName, string message)
{
    Clients.User(recipientName).addNewMessageToPage(senderName, message);
}

注意,虽然这个方法的参数名是"userId",但是您应该在这里传递用户名。这让我吃惊,当我第一次使用这种方法。

此功能仅在SignalR 2.0+中可用,有关详细信息,请参阅这里,包括在SignalR集线器中跟踪连接用户的其他方法。

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

https://stackoverflow.com/questions/25225373

复制
相关文章

相似问题

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