SignalR(2.2.0)を使用してリアルタイム更新を受信するJQuery UIウィジェットを作成しようとしています。サーバー上でメソッドを呼び出すだけで正常に動作しますが、サーバーからクライアントコールバックを呼び出すことはクライアントでは起動しません。SignalRコールバックがJQuery UIウィジェットで起動しない
私はここに示唆されているようにクライアントのログを有効にしています:SignalR Troubleshootingと私は接続で設定がうまくいっているが、クライアントメソッドが呼び出されないことをコンソールで見ることができます。いかなる種類のエラーメッセージもありません。また、私はそうのような接続を開始する前に、ハブプロキシでクライアントメソッドを定義している:
_bindClientCallbacks: function() {
theHub.client.broadCastToClient = function (message) {
twr.log(message);
};
}
、その後、私はそうのようなハブの接続を開始します。
_startSignalRClient: function() {
$.connection.hub.logging = true;
$.connection.hub.start()
.done(function() {
twr.log("Connected to SignalR hub, id=" + $.connection.hub.id);
})
.fail(function() {
});
}
これらの方法は「_CREATEに呼ばれていますそのようなjQueryのウィジェットでは()」関数:
_create: function() {
theHub = $.connection.DataImportHub;
this._bindClientCallbacks();
this._startSignalRClient();
}
これは正常に動作し、私はidの有効な接続を得ることができます。クライアントからサーバーメソッドを呼び出すこともできます。しかし、私はそうのように、サーバからクライアント上broadCastToClient
メソッドを呼び出すしようとすると:
public void BroadCastToClient(string userId, string message)
{
var hubContext = GlobalHost.ConnectionManager.GetHubContext<DataImportHub>();
foreach (var connectionId in _connections.GetConnections(userId))
{
hubContext.Clients.Client(connectionId).broadCastToClient(message);
}
}
何がクライアント上で起こりません...サーバーは、私が乗った接続IDに対応する有効な接続を見つけないにもかかわらず、クライアント。
私はここで何が欠けていますか?
を確認 _bindClientCallbacks' 'その'_startSignalRClient'の前に呼び出されます... – ViRuSTriNiTy
JQuery UIウィジェットの_create関数の_startSignalRClientの前に_bindClientCallbacksを呼び出します(clのポストに関数を追加しました)私はそれが問題だとは思わないので、 – lange
'hubContext.Clients()'は私のマシンでは解決できません。代わりに 'hubContext.Client()'を試してみてください。 – ViRuSTriNiTy