是否可以在Azure上使用SignalR在.Net Core和MVC5之间进行通信?

问题描述 投票:0回答:1

我创建了一个AzureSignalR实例和2个客户端应用。一个是MVC5,.Net 4.7.2应用程序,另一个是.Net Core 2.2。我在两者中都创建了一个相同的SignalR Hub,简单来说就是

    public class MessageHub : Hub
    {
        public void Send(ApplicationEvent evt)
        {
            // broadcastMessage must be a javascript method on the client
            Clients.All.broadcastMessage(evt);
        }
    }

并在两者上实现了必要的JavaScript。我的问题是,虽然每个应用程序都可以分别发送和接收消息,但它们不会收到其他应用程序发出的消息。

我可以看到对AzureSignalR服务的请求稍有不同,因为asrs.op参数中的值是不同的,即

MVC5

https://<redacted>.service.signalr.net/aspnetclient/negotiate?clientProtocol=2.1&_=1572008814078&asrs_request_id=1tgsLXwGAAA%3D&asrs.op=%2Fsignalr&connectionData=%5B%7B%22name%22%3A%22messagehub%22%7D%5D

。Net核心

https://<redacted>.service.signalr.net/client/negotiate?hub=messagehub&asrs.op=%2Fmessagehub&asrs_request_id=NmhXZHcGAAA%3D

并且想知道这是否是原因,但由于推断出的原因,我看不到更改MVC5 op名称的方法。

显然,我们将在某个阶段升级MVC5应用程序,因此在此期间这是理想的选择。

我创建了一个AzureSignalR实例和2个客户端应用。一个是MVC5,.Net 4.7.2应用程序,另一个是.Net Core 2.2。我在两者中都创建了一个完全相同的SignalR Hub,只是公共类...

signalr signalr-hub asp.net-core-signalr azure-signalr
1个回答
1
投票

您在这里使用两种不同类型的SignalR。一个是.NET Core的新版本,另一个是.NET Framework应用程序的旧SignalR。您可以在[microsoft documentation.]上看到两者之间的差异

由于这是SignalR的两种不同实现,因此它们无法相互通信。 Azure SignalR不仅可以帮助您扩展SignalR实例,而且不必为粘性会话,Redis背板配置和其他基础设施所困扰。

© www.soinside.com 2019 - 2024. All rights reserved.