[英]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.