【发布时间】:2020-02-04 07:56:37
【问题描述】:
This example 来自 SignalR .NET Core 上关于“创建和使用集线器”的 Microsoft 文档:
using Microsoft.AspNetCore.SignalR;
using System.Threading.Tasks;
namespace SignalRChat.Hubs
{
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
}
And this example 来自 SignalR .NET Framework 上关于“创建和使用集线器”的 Microsoft 文档:
using System;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace SignalRChat
{
public class ChatHub : Hub
{
public void Send(string name, string message)
{
// Call the broadcastMessage method to update clients.
Clients.All.broadcastMessage(name, message);
}
}
}
我是否正确假设 SignalR .NET Framework 不支持来自客户端调用的 returnig 任务,而 SignalR .NET Core 具有此功能?是否只有在 .NET Core 中我们才能等待对客户端的调用以确保收到消息?
【问题讨论】:
-
没有。您需要检查文档,而不仅仅是示例。好的例子通常只显示一个概念。在这种情况下,相关文档是 Server Hubs API Guide
The method that you call executes asynchronously.中的 Asynchronous Execution 部分 -
Is it only in .NET Core that we can await calls to Clients to make sure that the message was received?这是一个不同的问题,您无法仅通过等待来确保收到消息