javascript - 如何将回调功能添加到 signalR 中的 hubClass 以将当前工作状态更新到客户端并延迟?

标签 javascript c# server client signalr

我是 signalR 的新手。我正在 signalR 中开发一个简单的应用程序。要求是,信号R需要以一定的时间延迟重复更新客户端的当前时间。当我开始运行时,代码我只得到服务器响应一段时间。它不会一次又一次地重复。我需要回调相同的Hubclass来一次又一次地将当前时间更新到客户端!

这是我的代码:-

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>

集线器类:-

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 添加回调功能。

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

It update the current Client in  time only

但是 signalR 和 .net 客户端应用程序工作正常。我需要对 hubclass 进行时间延迟并定期回调相同的 hub 类吗?

Here another output

是否可以在服务器中回调相同的集线器类,但有一定的延迟? 为此,我添加了 hubclass 中的时间延迟。我在服务器中回调 hubclass 。它不起作用。有人能为我提供解决方案吗?

最佳答案

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

关于javascript - 如何将回调功能添加到 signalR 中的 hubClass 以将当前工作状态更新到客户端并延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40797818/

相关文章:

javascript - Angular Js : how to load table data after clicking a button?

javascript - 在 Canvas 周围画一个框 getImageData

c# - 如何在 .NET MVC 中以特定时间间隔调用方法

c# - 按数字方式对 List<String[]> 进行排序

java - 提交后如何从服务器插件中的 Neo4j 数据库获取属性?

php - php-fpm 的负载平均/性能问题

javascript - 用一段生成 SVG 正弦波

javascript - 表单上传文件一次,但当我再次上传同一文件时,它不适用于同一文件

c# - 我可以在 LINQ to Entities 查询中使用 CAST 吗?

c - 在新的客户端连接到服务器后尝试 fork() [Socket 编程 C]