我是SignalR的新手并且学习基础知识。我正在尝试从我的控制器操作向客户端发送推送消息。
在控制器中:
function GetPageData() {
$.ajax({
type: "Post",
url: '/Track/GetPageData',
dataType: "json",
data: param = "",
success: successFunc,
error: errorFunc
});
function successFunc(data, status) {
alert('data; '+data+', '+'status: '+status);
if (data == 'contact') {
$.ajax({
type: "Post",
url: '/Track/Contact',
dataType: 'json',
success: successF,
error: errorF
});
function successF() {
alert('services')
}
function errorF() {
alert('servicesFail')
}
}
在javascript中:
public ActionResult Contact()
{
return View();
}
因为服务器在加载视图之前调用客户端方法,所以我只能看到来自JS的警报消息而无法更新视图。不知道我在这里缺少什么。
答案 0 :(得分:0)
对于那个简单的测试,我会创建一个简单的计时器,如
public class Clock
{
private static Clock _instance;
private Timer timer;
private Clock()
{
timer = new Timer(200);
timer.Elapsed += Timer_Elapsed;
timer.Start();
}
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
GlobalHost.ConnectionManager.GetHubContext<ClockHub>().Clients.All.sendTime(DateTime.UtcNow.ToString());
}
public static Clock Instance
{
get
{
if (_instance == null)
{
_instance = new Clock();
}
return _instance;
}
}
}
在启动应用程序时创建此计时器的实例