0

新しい注文が追加されたときにサーバーからメッセージを受信できるように、clintブラウザーのWebサイトにsignalRを使用したいと思います。したがって、どのブラウザによってもトリガーされないサーバー側のイベントに反応するようにしたいのです。

ウェブサイトには複数のユーザーがいます。サーバー上でユーザーに新しい注文があった場合は、ユーザーに通知する必要があります。特定のユーザーのみに通知し、ユーザーを追加するメソッドからこれを行うにはどうすればよいですか?

次のようなコードはありますか?

var chat=new Chat();
chat.Send("hihi");

AddOrderメソッドに配置され、

public class Chat : Hub
{
    public void Send(string message)
    {
        // Call the addMessage method on all clients     
        Clients.refresh(message);
    }
}
4

3 に答える 3

0

接続しているすべてのユーザーの を保存し、Context.ConnectionIdそれを Web サイトのユーザーに関連付けてから使用する必要がありますClients[connectionId].addMessage(data);

于 2012-05-28T09:00:23.810 に答える
0

これを行う 1 つの方法は、それぞれが接続 ID とペアになっているユーザー (Web サイトのユーザー) のコレクションを保持することです。その後、SignalR イベントの OnConnected / OnDisconnected を使用して、ユーザーをこのリストに出し入れすることができます。

例えば

public override Task OnConnected()
{
     // Add users here with Context.ConnectionId
}

public override Task OnDisconnected()
{
     // Remove users from collection here by identifying them with Context.ConnectionId
}
于 2013-03-19T11:27:29.217 に答える