Jquery 从泛型处理程序signer中的C#代码调用客户机方法
我有以下Jquery 从泛型处理程序signer中的C#代码调用客户机方法,jquery,asp.net,signalr,signalr-hub,signalr.client,Jquery,Asp.net,Signalr,Signalr Hub,Signalr.client,我有以下Hub: public class ImageHub : Hub { public void LoadTheImage(String id, String imageUrl) { Clients.All.loadReadyImage(id, imageUrl); } } 以及客户端上的以下JavaScript代码 $(function () { var loadImage = $.connection.imageHub; loadImag
Hub
:
public class ImageHub : Hub {
public void LoadTheImage(String id, String imageUrl) {
Clients.All.loadReadyImage(id, imageUrl);
}
}
以及客户端上的以下JavaScript代码
$(function () {
var loadImage = $.connection.imageHub;
loadImage.client.loadReadyImage = function (id, imageUrl) {
alert(id + " is ready. Url: " + imageUrl); //this will be much more than an alert.
};
});
并在.ashx.cs文件上获得以下代码,该文件是一个通用处理程序:
public void ProcessRequest(HttpContext context) {
//do some stuff here
var imageContext = GlobalHost.ConnectionManager.GetHubContext<ImageHub>();
imageContext.Clients.All.loadReadyImage("imageOne", imageUrl);
}
但是,我不需要从客户端调用函数,而是需要从服务器端调用客户端函数
我该怎么做
谢谢大家。您必须启动连接,才能发送和接收消息,就像您在第二段代码中所做的那样
$.connection.hub.start()
.done(function(){ console.log('Now connected, connection ID=' + $.connection.hub.id); })
.fail(function(){ console.log('Could not Connect!'); });
});
您不是在第一个javascript代码段中调用
$.connection.hub.start()
吗?不是。我应该调用它吗?在添加.start()之后,它似乎起作用了。我错过了谁D谢谢你。如果你不介意的话,加上这个作为答案,我们会接受的。
$.connection.hub.start()
.done(function(){ console.log('Now connected, connection ID=' + $.connection.hub.id); })
.fail(function(){ console.log('Could not Connect!'); });
});