【发布时间】:2021-01-23 18:53:15
【问题描述】:
我可以从集线器内部的 SignalR 集线器发送消息,但不能从集线器外部发送消息。 以下代码不起作用:
public class MessageSender
{
private readonly ILogger<MessageSender> _logger;
private readonly IHubContext<MessageHub> _context;
public MessageSender(ILogger<MessageSender> logger, IHubContext<MessageHub> context)
{
_logger = logger;
_context = context;
}
public async Task SendTestMessage()
{
Console.WriteLine("Sending Test Message to Client");
await _context.Clients.All.SendAsync("TestMessageReceived", new SampleData());
}
}
但是下面的代码可以工作:
public class MessageHub : Hub
{
public async Task InitiateConnection(SampleData data)
{
Console.WriteLine($"{data.Text});
await Clients.All.SendAsync("TestMessageReceived", new SampleData());
}
}
我的客户端应用程序 (C#) 能够与服务器通信并调用集线器中的“InitiateConnection”方法,该方法反过来调用客户端的“TestMessageReceived”方法,该方法工作正常。
为什么 MessageSender 无法发送消息?可能我错过了一些非常小的东西。 我正在使用 .Net Core,服务器和客户端都在 .Net 5 上
【问题讨论】:
标签: .net signalr signalr-hub signalr.client