Eho*_*ret 5 c# signalr asp.net-core
我将 SignalR 与 ASP.NET Core 结合使用:
public class NotificationHub : Hub
{
}
Run Code Online (Sandbox Code Playgroud)
[Route("api/[controller]")]
[ApiController]
public class AController : ControllerBase
{
private readonly IHubContext<NotificationHub> _hubContext;
public AController(IHubContext<NotificationHub> hubContext)
{
_hubContext = hubContext;
}
}
Run Code Online (Sandbox Code Playgroud)
我发现我只能使用属性Clients.Caller和Clients.Others
public class NotificationHub : Hub
{
public void Test()
{
Clients.Caller.SendAsync("aMethod");
Clients.Others.SendAsync("aMethod");
}
}
Run Code Online (Sandbox Code Playgroud)
虽然IHubContext<NotificationHub>我只能访问:
_hubContext.Clients.All
Run Code Online (Sandbox Code Playgroud)
有什么方法可以访问中心外的资源Clients.Caller并获取其属性吗?Clients.Others
您的 SignalR 客户端仅与集线器通信,因此控制器中永远不会有“调用者”,而仅在集线器中。
您传递给控制器的 HubContext 可用于将消息发送回任何已注册的连接,方法是广播到所有连接 ID 或选定的一组连接 ID。
因此,如果您可以将控制器用户与连接 ID 相匹配,则可以Clients.Caller通过发出 aClients.Client("connection-id")和 a Clients.Othersby usingClients.AllExcept(...)或类似命令来获得等效的效果。
| 归档时间: |
|
| 查看次数: |
3635 次 |
| 最近记录: |