如何使用signalR更新搜索结果
我刚刚开始学习Signal,我正在尝试实现一个搜索功能 如何定期更新用户的搜索结果。我最初的想法是通过IRegisteredObject运行定时作业,以触发客户端的检查,搜索参数如下:如何使用signalR更新搜索结果,signalr,Signalr,我刚刚开始学习Signal,我正在尝试实现一个搜索功能 如何定期更新用户的搜索结果。我最初的想法是通过IRegisteredObject运行定时作业,以触发客户端的检查,搜索参数如下: public class BackgroundTimer : IRegisteredObject { private Timer taskTimer; private IHubContext hub; public BackgroundTimer() { Host
public class BackgroundTimer : IRegisteredObject
{
private Timer taskTimer;
private IHubContext hub;
public BackgroundTimer()
{
HostingEnvironment.RegisterObject(this);
hub = GlobalHost.ConnectionManager.GetHubContext<SearchHub>();
taskTimer = new Timer(OnTimerElapsed, null, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(5));
}
private void OnTimerElapsed(object sender)
{
hub.Clients.All.checkForUpdates();
}
}
public class SearchHub : Hub
{
public void Search(string searchText)
{
string jsonResult = string.Empty;
//TODO save result to jsonResult
Clients.Caller.broadcastMessage(jsonResult);
}
}
然而,我不能不认为有更有效的方法来实现这一点。任何建议请使用此代码,您只是在做客户端可以做的事情,而不是每秒轮询服务器。发布一条关于所有改变搜索结果的操作的消息,并对其进行操作。或者使用SqlDependency