0

SignalR を使用しています。会話が完了したら、すべての受信者を会話に追加し、オンラインの受信者に通知しようとしています。

すべてのコードは適切ですが、最初の受信者にしか通知されません。なので初回のみ放送待ちかな

public void NotifyConversation(ConversationModel model, string name)
{
    var groupId = model.ID.ToString();
    var recipients = model.Recipients;
    var allconnections = new List<string>();


    foreach (var recipient in recipients)
    {
        var connections = _manager.GetConnections(recipient.Name).Where(x => x != null);
        allconnections.AddRange(connections);
    }

    var tasks = allconnections
        .Select(connection =>
                Task.Run(() => { Context.Groups.Add(connection, groupId); })).ToArray();

    Task.WaitAll(tasks);

    Context.Clients.Group(groupId).broadcastConversation(model);
}
4

2 に答える 2