我正在学习 .Net Core SignalR 并研究如何将它与我的应用程序实时图表一起使用。我在网上玩了一些示例,它们都可以工作,但是我不知道如何将 SignalR 与数据库轮询一起使用。我收到以下错误:
无法访问已处置的对象...
我假设它与请求完成后正在处理我的上下文有关。我正在使用依赖注入。
聊天控制器
public class ChatController : ControllerBase
{
private IChatService _chatService;
private IChatContext<ChatHub> _hub;
public ChatController(IChatContext<ChatHub> hub, IChatService chatService)
{
_hub = hub;
_chatService = chatService;
}
public IActionResult Get()
{
var timerManager = new TimerManager(() => _hub.Clients.All.SendAsync("transferchatdata", _chatService.ChatDataByProds()));
return Ok(new { Message = "Request Completed" });
}
}
聊天服务
public interface IChatService
{
IEnumerable<ChatDataByProd> ChatDataByProds();
}
public class ChatService : IChatService
{
private ChatContext _context;
public ChatService(ChatContext context)
{
_context = context;
}
public IEnumerable<ChatDataByProd> ChatDataByProds()
{
return _context.ChatDataByProds;
}
}
聊天中心
public class ChatHub : Hub
{
}