以下代码示例可能有所帮助。 在使用SignalR时,有时会发生数据无法返回到React应用程序的情况。这个问题的可能原因之一是在Hub(用于设置SignalR连接)的OnConnectedAsync事件处理程序中未使用await。通过将任务标记为await,可以确保在完成后才返回控制权。如果Hub未正确释放,则可能会在Web API服务器中导致性能下降。
以下是一个修改后的示例,其中包括在OnConnectedAsync事件处理程序中使用await:
public class ChatHub : Hub
{
// ...
public override async Task OnConnectedAsync()
{
await Clients.All.SendAsync("userConnected", Context.ConnectionId);
await base.OnConnectedAsync();
}
}
当这些更改完成并重新启动服务器后,应该能够通过SignalR发送和接收数据,而不会出现其他问题。