0
ステータス更新がのみがブラウザタブのインスタンスに送信される、SignalR実装の実際の例を見つけるための多くの研究を行ってきました。私のアプリケーションはWebデータを抽出し、そのプロセスには多くの時間がかかります。進行状況更新メッセージは、開いているタブ(ユニークなConnectionid)にのみ送信されます。 SignalR
ステータス更新は送信できましたが、ウェブページを開いているすべてのユーザーにのみ送信できました。私は、しかし、必要性が唯一開いているタブで進捗状況を更新する方法は何
//Server side (works just fine)
public class SendCustomText : Hub
{
public string myStatus;
public void CurrentStatus()
{
var context = GlobalHost.ConnectionManager.GetHubContext<SendCustomText>();
context.Clients.All.setStatus(myStatus);
}
}
//Client side
<script type="text/javascript">
$(function() {
//Declare a proxy to the reference hub
var currentStatus = $.connection.sendCustomText;
currentStatus.client.setStatus = function (value) {
$('#signalr_french_status').text(value.toString());
}
$.connection.hub.start().done(function() {
$('pandora_french_panel_extract_button').click(function() {
currentStatus.server.send();
})
})
$.connection.hub.disconnected(function() {
$.connection.hub.start();
})
})
。ログインしているユーザーが別のタブを開いて別のジョブを処理する可能性があります。その新しいタブには、それ自身の進捗状況が表示されます。
私は接続IDクライアント側を取得し、AJAXを介してサーバーコードに渡すことに成功しました。私は、接続IDがハブ内で使用される例であなたの助けが必要です。
context.Clients.Client(connectionID).setStatus();