SignalR:在同一网站上传/下载文件之前不进行消息传递

Dmi*_*try 7 signalr signalr-hub signalr.client

进行下载或上传文件(WebClient.DownloadFileAsync | UploadFileAsync或HttpWebRequest)并同时调用SignalR-hub方法时出现问题:

SignalR调用已停止,直到文件加载完成.看起来就是这样:所有信号员都会进行排队.所有排队的调用都会进一步执行(文件加载后).

我的代码片段:

hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading started ", 0);

DownloadFileByKey(fileKey, (progressPercentage, bytesSent) => { hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading in progress", progressPercentage); });

hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading finished", 100);
Run Code Online (Sandbox Code Playgroud)

文件下载完成后,将在集线器上执行第二个"TraceDocumentUploadingRequest"集线器方法调用(在文件加载处理程序中).

文件加载处理程序在当前线程或另一个线程中执行(与DownloadFileByKey方法实现相关) - 结果是相同的.

我怎样才能避免这种行为并在正确的时间强制使用hub-method调用?

Ste*_*hen 0

总结 David Fowl 的评论,该问题是 SignalR 版本 1.1.3 中的一个错误,但在更高版本中修复。具体是2.0.0版本