如何使用signalR更新搜索结果

如何使用signalR更新搜索结果,signalr,Signalr,我刚刚开始学习Signal,我正在尝试实现一个搜索功能 如何定期更新用户的搜索结果。我最初的想法是通过IRegisteredObject运行定时作业,以触发客户端的检查,搜索参数如下: public class BackgroundTimer : IRegisteredObject { private Timer taskTimer; private IHubContext hub; public BackgroundTimer() { Host

我刚刚开始学习Signal,我正在尝试实现一个搜索功能

如何定期更新用户的搜索结果。我最初的想法是通过IRegisteredObject运行定时作业,以触发客户端的检查,搜索参数如下:

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