繁体   English   中英

如何在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的新手。我正在signalR中开发一个简单的应用程序。 要求是,signalR需要在一定的延迟下重复更新当前时间给客户端。当我开始运行时,代码仅获得服务器响应一段时间。它不会一次又一次地重复。 我需要一次又一次地回调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>

HubClass:-

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启动类:-

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

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

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

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

它仅及时更新当前客户端

但是signalR和.net客户端应用程序还是可以正常工作。我需要为hubclass设置时间延迟并定期回调samehub类吗?

这是另一个输出

是否可以在一段时间内回调服务器中的同一集线器类? 为此,我补充说,hubclass中的时间延迟。 我在服务器中回调了hubclass。它将无法正常工作。有人可以为我提供解决方案吗?

理想情况下,您希望使用一个计时器,该计时器以当前时间调用broadcastMessage方法。 但是,您的send中心方法存在一些问题。 此外,SignalR会为每个呼叫实例化集线器类,并且不会维护状态。

暂无
暂无

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

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