我如何在 signalR 中将回调功能添加到我的 hubClass 以将当前工作状态更新到具有时间延迟的客户端?

How do i Add callBack Functionality to my hubClass in signalR for update the current work status to client with time delay?

我是 signalR.I 的新手,正在用 signalR 开发一个简单的应用程序。要求是,signalR 需要用一段时间 delay.While 将当前时间重复更新到客户端,我开始 运行,我得到服务器响应一段时间的代码 only.it 不是一次又一次地重复。我需要回调 sameHubclass 来一次又一次地向客户端更新当前时间!

这是我的代码:-

Javascript 客户端代码:-

<body>
<div class="container">
<input type="hidden" id="name" />
</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 (name,current) {
        var now = current;
        console.log(current);
        $('div.container').append('<p><strong>'+name+"=" 
               + now + '</strong></p>');

        };
        $("#name").val(prompt("Enter the UserName", ""));

            $.connection.hub.start().done(function () {
                chat.server.send($("#name").val());

            });

    });
</script>
</body>

中心Class:-

public class timeHub : Hub
{
   public void send(string name)
    {

        while(true)
        {

            string current = DateTime.Now.ToString("HH:mm:ss:tt");
            Clients.All.broadcastMessage(name,current);
            Console.WriteLine(current);
            Console.ReadLine();
            System.Threading.Thread.Sleep(3000);
            send(name);
        }
    }
}

MyOwin 启动 Class:-

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

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

如何在 SignalR 的 Javascript 客户端代码中为我的 HubClass 添加回调功能。

这是我当前的输出,没有回调函数和时间延迟:-

但是 signalR 和 .net 客户端应用程序或正在工作的 fine.I 需要为 hubclass 延时并定期回调同一个 hub class?

是否可以在服务器中回调同一个集线器 class 并延迟一些时间? 为此,我添加了集线器中的时间延迟class。我在服务器中回调集线器class。它不会work.Could有人为我提供解决方案吗?

理想情况下,您会希望使用一个计时器来调用带有当前时间的 broadcastMessage 方法。不过,您的 send 集线器方法存在一些问题。此外,SignalR 会在每次调用时实例化集线器 class,并且不会维护状态。