当我使用AJAX时,它非常简单:
当我使用SignalR时,我会执行以下操作。在服务器上,我的hum方法不会返回任何内容(因此我无法更新UI并停止进度条)。相反,我为所有客户端(包括发送数据的客户端)调用一个类似ThisDataWasChanged的方法。
我不太清楚该怎么做。我的意思是,确定我可以首先为调用hub方法的客户端返回数据,然后更新所有其他客户端(以某种方式区分它们),但这似乎有点过分。
答案 0 :(得分:1)
您需要做的事情类似于您的Hub类
中的以下内容<强>集线器强>
public class ProgressBarHub : Hub
{
public void change()
{
// Do some stuff
Clients.Client(Context.ConnectionId).thisDataWasChanged(progressBarObj);
}
}
<强> JS 强>
// Create hub
var hub = $.connection.progressBarHub;
// Connect
$.connection.hub.start().done(function () {
// Start progress bar?
// Create a start progress bar method in the hub and call it
});
hub.client.thisDataWasChanged = function (progressBarObj) {
//Do something to the progress bar with the progressBarObj that we returned
};