gpt4 book ai didi

javascript - SignalR:如何在信号器中自动将内容从服务器推送到客户端?

转载 作者:行者123 更新时间:2023-12-03 05:34:20 26 4
gpt4 key购买 nike

我正在使用 signalR 创建一个 .net Web 应用程序。我的要求是,当客户端开始托管时,服务器自动将当前时间值递归地推送到客户端,并延迟一些时间。我写了代码,但是signalR无法自动发送消息给客户端?

我认为,signalR 需要来自客户端的一些输入。我知道每次信号器都希望通过集线器从客户端输入输入。是否有办法在服务器中自动调用客户端?

顺便问一下,我写的代码是正确的吗?

这是我的中心:-

  public class timeHub : Hub
{
public void Send()
{

while(true)
{
var current = DateTime.Now.ToString("HH:mm:ss:tt");
Clients.All.broadcastMessage(current);
Console.WriteLine(current);
Console.ReadLine();
System.Threading.Thread.Sleep(5000);

}
}
}

我的 Owin 创业类(class):-

     [assembly: OwinStartup(typeof(Time.Startup))]

namespace Time
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();

}
}
}

我的客户端 JavaScript 代码是:-

        <div class="container">
</div>
<script src="Scripts/jquery-1.6.4.min.js"></script>
<script src="Scripts/jquery.signalR-2.2.1.min.js"></script>
<script src="signalr/hubs"></script>
<script type="text/javascript">
$(function () {
var chat = $.connection.timeHub;
chat.client.broadcastMessage = function (current) {
var now = current;
console.log(current);
$('div.container').append('<p><strong>'
+ now + '</strong></p>');
};
$.connection.hub.start().done(function () {

chat.server.send();
});
});
</script>

如何将内容从服务器自动推送到客户端,而无需客户端在信号器中调用?

有人可以给我一个解决方案来解决这个问题吗?

My Empty Client Page

最佳答案

我看到的是你的代码没有任何东西调用你的 timeHub:Send() 方法。您已经定义了一个集线器并定义了一个无限循环的 Send 函数,但是看起来好像您忘记了启动 Send() 泵。
你需要调用它!请记住,由于 Send() 函数永远不会返回,因此任何调用 Send() 的线程都将被阻止。

我建议启动一个任务,这样你的主线程就不会被对 Send() 的初始调用阻塞。

祝你好运!

关于javascript - SignalR:如何在信号器中自动将内容从服务器推送到客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40795818/

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