如何使用signalR更新搜索结果

时间:2014-09-13 04:56:11

标签: signalr

我刚刚开始学习signalR,而我正试图实现搜索功能。

我如何定期更新用户的搜索结果。我最初的想法是通过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);
    }
}

然而,我无能为力,但我认为有更有效的方法来实现这一目标。任何建议请

1 个答案:

答案 0 :(得分:0)

使用此代码,您只需执行客户端可以执行的操作,每秒轮询服务器。在所有更改搜索结果并对其执行操作的操作上发布消息。或者使用SqlDependency。