繁体   English   中英

SignalR 2不更新

SignalR 2 does not update

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个使用SQLDependency Asp.Net SignalR 2来自动显示数据库更改的asp.net页面。 我的问题是,即使调试时正确,也看不到页面上的更改。 如果我更新数据库,该页面仍会显示旧数据,但是我的集线器会获取新数据。 但是它没有显示。 我唯一要做的就是通过这样的计时器重新加载页面。

<script>
    function cache_clear() {
        window.location.reload(true);
    }

    $(document).ready(function () {
        var count = 60;
        setInterval(function () {
            $("b[id=show-time]").html(count--);
            if (count == 0) cache_clear();
        }, 1000)});
</script> 

但这也使SqlDependency的整个想法变得多余。 谁能给我一个提示,我需要做什么才能使更新的数据显示在页面上?

    <script>

        $(function () {
            var notify = $.connection.notificationsHub;

            notify.client.displayNotification = function (msg) {
                $("#newData").html(msg);
                $("#LitDiv").hide();
            };

            $.connection.hub.start();
        });
    </script>

private void dependency_OnChange(object sender, SqlNotificationEventArgs e)
        {
            if (e.Info == SqlNotificationInfo.Insert || e.Info == SqlNotificationInfo.Delete || e.Info == SqlNotificationInfo.Update)
            { SendNotifications(); }
}            

        public void NotfiyAllClients(string msg)
        {
            IHubContext context = GlobalHost.ConnectionManager.GetHubContext<NotificationsHub>();
            // I can see that my database changes are made here, but it does not display that on the page unless I reload the page
            context.Clients.All.displayNotification(msg);
        }    

而SendNotification方法使用此...

var nHub = new NotificationsHub();
nHub.NotfiyAllClients(message);

编辑:如果我调出控制台我得到此错误。

JavaScript runtime error: Unable to get property 'notificationsHub' of undefined or null reference
2 个回复

我找到了解决方案,我在页面上有2个对jQuery的引用。 第一个放置在头部,是jquery-1.6.4.min,另一个放置在body标签末尾(jQuery v1.11.2)之前。

删除放置在body标签(jQuery v1.11.2)末尾的标签后,它可以正常工作。

我认为您的集线器定义不正确(伪代码不是100%):

多数民众赞成在您的中心定义:

class NotificationsHub : Hub {
    public void DisplayNotification(string msg){}
}

在SendNotification方法中使用:

 IHubContext context = GlobalHost.ConnectionManager.GetHubContext<NotificationsHub>();
 context.Clients.All.displayNotification(msg);

或使用单独的告密者类而不是中心

1 SignalR 不经常更新

我有一个 azure web 作业,我通过达到步骤更新了 web 作业运行的状态 考虑状态 Web 作业已启动、获取详细信息、成功、signalR 仅显示 Web 作业已启动和成功,并跳过获取详细信息状态。 SignalR 随机跳过这样的状态 注意:我已经写了一个更新所有状态的通用方法 ...

2 你如何更新SignalR-Objc

我是iOS / Objective C开发的新手,所以这可能是一个非常容易回答的问题。 我正在构建一个使用SignalR-ObjC库的项目,该库是SignalR的Objective C实现。 要下载并安装该库,SignalR-ObjC网站上说要使用我已经适当完成的Cocoapods。 ...

3 使用signalR更新Winforms UI

我有一个在它自己的UI线程上创建的表单在系统托盘中运行,我需要使用来自服务器的signalR连接进行操作,我相信它在后台线程上运行。 我知道在不从UI线程访问控件时需要调用控件。 我能够使用在表单加载时调用的以下代码来操作(在我的情况下使弹出窗口),但是想要进行健全性检查,因为我对async ...

4 通过SignalR调用更新UI

当我收到SignalR服务器的电话时,我正在尝试更新UI。 在我的示例代码中,我有两个Div标签,它们依次由不同的Angular控制器控制。 我已经将SignalR服务注入一个控制器中。 在从SignalR服务接收到事件后,第一控制器广播一条消息,第二控制器正在侦听该消息。 它应该更 ...

5 SignalR实时更新TextArea

嗨,我刚刚开始学习SignalR v2。 我的aspx页面中有一个textarea,我想在用户每次按键时实时更新它。 问题:我在浏览器中打开了2个标签。 如果我输入第一个字符示例“ a” ,则什么也不会发生:Tab1 textarea:“ a” tab2 textarea:NOTHIN ...

6 使用Signalr更新列表

我正在编写一个信号发送器客户端-服务器应用程序。 服务器维护项目列表。 客户端显示列表,并允许用户向列表中添加项目。 假设服务器有一个GetList方法,该方法返回整个列表,而客户端有一个NewItem方法,只要客户端将项目添加到列表中,服务器就会调用该方法。 这是客户端 ...

7 应用 SignalR 更新 gridview

所以在使用 signalR 时。 我按照这个例子,让它在一个测试 web 表单上工作,在其中我打开同一页面的 2 个选项卡并对其进行了测试: SignalR 教程现在我尝试对其进行一些修改,并尝试将 1 页作为发送者,将另一页作为接收者, 带有按钮的页面发送消息: 带有 gridview 的页面 ...

8 如何更新SignalR版本

我有一个现有的应用程序,该应用程序使用通过nuget和npm安装的SignalR安装的SignalR库。 我将两者的版本都升级到了v2.4.1。 但是,/ signalr / hubs中显示的版本仍为v2.3.0-rtm。 为什么版本不一样? 如何将/ signalr / hubs中显示的版本更 ...

9 SignalR-保持更新的ConnectionID

我正在用asp.net MVC编写一个相当大的Web系统,该系统涉及根据订阅的内容实时向众多用户发送数据。 我和我的团队决定为此使用SignalR,并负责在系统中实现它。 在我们的例子中,用户选择一个要加入的组,然后选择1个要处理的事物。 为此,我将所有用户保存在数据库中。 ...

10 从SignalR回调更新Angular视图

有什么办法可以在AngularJS中创建模板,但是直到某个事件发生后才运行它? 实际上我正在使用SignalR。 因此,当服务器调用客户端函数时,我希望基于服务器发送的数据显示一些HTML。 假设我正在做一个国际象棋游戏。 在服务器发送之前,我没有该面板可以显示在页面上。 在H ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM