微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过将SignalR与ASP.NET MVC 5一起使用将消息共享给特定客户端?

如何解决如何通过将SignalR与ASP.NET MVC 5一起使用将消息共享给特定客户端?

我正在尝试在示例聊天应用程序中实现一个小型演示。

我在ASP.NET MVC5应用程序中使用SignalR,但是在向特定/单个客户端发送消息时发现了一些问题。

public class ChatHub : Hub
{
        string connectionId = "";     

        public string GetConnectionId()
        {
            return connectionId;
        }
        
        public override Task OnConnected()
        {
            connectionId = Context.ConnectionId;        
            return base.OnConnected();
        }
}

public class Common
{   
        public static void Send(string name,string message,string connectionId)
        {     
            IHubContext Context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();       
            Context.Clients.Client(connectionId).addNewMessagetoPage(name,message);
        }           
}

我不想将其设为静态

public string GetConnectionId()
{
    return connectionId;
}

然后如何将connectionId发送到

Common.Send(name,message,connectionId)

在ASP.NET MVC控制器中被调用

有什么更好的建议/推荐吗?

使用ASP.NET MVC 5和SignalR 2.4.1构建的应用程序。

我正在为我的演示应用程序使用此链接。您可以在https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr-and-mvc

上查看与源代码相关的所有详细信息。

输出:我试图遵循指南并查看示例实现,但无法解决问题。

大多数人说您无法使用GetHubContext

看到

https://github.com/aspnet/SignalR/issues/2274#issuecomment-389227033 https://github.com/aspnet/SignalR/issues/2274#issuecomment-389013456 Connection ID when calling SignalR Core Hub method from Controller

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。