私はasp.netの古典的なウェブサイトを持っています。 iveはSignalRの基本的な機能を持っていました(1人のクライアントが残りのクライアントにメッセージを送る場所)。しかし、今私は特定のconnectionsIDsにのみメッセージを送信したい。SignalRは単一の接続IDにメッセージを送信します
私のハブ:
** [HubName("chatHub")]
public class ChatHub : Hub
{
public static List<string> messages = new List<string>();
public void GetServiceState()
{
Clients.updateMessages(messages);
}
public void UpdateServiceState()
{
messages.Add(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
Clients.updateMessages(messages);
}
}**
ASPコード:
<script type="text/javascript">
$(function() {
// creates a proxy to the health check hub
var healthCheckHub = $.connection.chatHub;
console.log($.connection.hub)
// handles the callback sent from the server
healthCheckHub.updateMessages = function (data) {
$("li").remove();
$.each(data, function() {
$('#messages').append('<li>' + this + '</li>');
console.log($.connection);
});
};
$("#trigger").click(function() {
healthCheckHub.updateServiceState();
});
// Start the connection and request current state
$.connection.hub.start(function() {
healthCheckHub.getServiceState();
});
});
問題は、私は本当にClients.updateMessages(メッセージ以来、ハブにある特定のConnectionIDに送信する方法を知りませんで);それらのすべてにメッセージを送信します。どのように私はこれを解決するのですか?
P.Sは:Send server message to connected clients with Signalr/PersistentConnection
と働いていたdidntの
http://riba-escapades.blogspot.dk/2012/05/signalr-send-messages-to-single-client.html:すでに見アイブ。
ユーザーがログインした後、connectionIDは常にuserIDと同じになるようにしました。私のアプリケーションでは、ユーザーが送信ボタンを押した後に誰が私のためにフォローされているのかを知り、それらの接続IDだけにメッセージを送信するようにしました。私はそれがスマートな動きであるかどうかは分かりません。どのようにスマートな方法でそれを実装するための任意のアイデア? – Timsen
私が見た実装のほとんどは、論理的なユーザーIDとアクティブな接続IDの1対多の関係マッピングを使用しています。 –
最後の質問ですが、オフラインのconnectionIDにメッセージを送信するとどうなりますか? – Timsen