gpt4 book ai didi

javascript - 从服务器到客户端的 SignalR 消息重复

转载 作者:行者123 更新时间:2023-12-03 09:22:01 25 4
gpt4 key购买 nike

我正在解决 MVC 应用程序中的 SignalR 问题。我创建了一个基于 internet templateMVC 4 项目,并安装了 SignalR nuget packetHub 类如下所示:

public class yourAppHub : Hub
{
static Timer t;

public yourAppHub()
{
t = new Timer(5000);
t.Elapsed += Hello;
t.Start();
}

public void Hello(object sender, ElapsedEventArgs e)
{
Clients.All.refreshPage("hello");
}
}

这就是我在母版页上的内容(_Layout.cshtml):

@if (Request.IsAuthenticated)
{
<script>
$(function () {
var con = $.hubConnection();
var hub = con.createHubProxy('yourAppHub');
hub.on('refreshPage', function (message) { alert(message); });

con.start(function () { hub.invoke('Hello'); });
});
</script>
}

当我登录时,我每 5 秒收到 2 条警报。为什么有 2 个警报?但是,如果我转到主页,然后转到联系表单,然后在另一个页面上,警报开始不断弹出。我无法理解我在这里做错了什么。我希望警报每 5 秒弹出一次。

最佳答案

我已经遵循了这个精彩的教程http://www.dotnetcurry.com/aspnet-mvc/826/server-side-timer-aspnet-mvc-signalr 。它实现单例并不在集线器中启动计时器,而是在该单例中启动计时器。现在它按预期工作了。

关于javascript - 从服务器到客户端的 SignalR 消息重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31814588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com