我正在尝试在处理从页面上传的 ApiController 中使用信号器。
本质上,我是从我的 uploadController 调用我的 Hub,然后我想与我的客户交谈。
缩短上传控制器看起来像这样:
public class UploadController : ApiController
{
public Task<HttpResponseMessage> PostFile()
{
var hubMan = new HubManager();
hubMan.showUpload("test");
}
}
然后我有我的 HubManager 应该负责发送给我的客户:
public class HubManager : Hub
{
public HubManager()
{
}
public void showUpload(string src)
{
Caller.showUpload(src);
}
}
我也在我的 showUpload 中试过这个:
public void showUpload(string str)
{
var context = GlobalHost.ConnectionManager.GetHubContext<HubManager>();
context.Clients[this.Context.ConnectionId].showUpload(str);
}
我的客户端代码如下所示:
$(document).ready(function () {
var progress = $.connection('/signalr/hubs/hubManager');
progress.showUpload = function (src) {
alert(src);
};
// Start the connection
$.connection.hub.start();
});
现在的问题是,在我的 Hub 类中,一切都是空的。我的来电者、客户和上下文为空。所以似乎有些东西没有正确初始化。
有什么建议么?