ページからのアップロードを処理する ApiController で signalr を使用しようとしています。
基本的に、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 クラスではすべてが Null であることです。私の発信者、クライアント、およびコンテキストは null です。そのため、何かが正しく初期化されていないようです。
助言がありますか?