我创建了一个 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 操作名称。
显然,我们将在某个阶段升级 MVC5 应用程序,因此在此期间这将是理想的。