Odpytywanie serwera w technologii WCF

0

Witam,
Piszę aplikację, klient-serwer, która będzie mogła składać się z jednego serwera i dowolnej ilości klientów. Dla uproszczenia załóżmy, że jest to komunikator. Zrobiłem komunikację między klientem, a serwerem, potrafię połączyć dowolną ilość klientów z serwerem i czegoś od tego serwera żądać. Mam jednak problem z porozumiewaniem się klient-klient. Załóżmy, że chcę przesłać wiadomość z klienta #1 do klienta #2. Wysyłam ją do serwera i tam czeka ona w kolejce na odczytanie. Problem jednak w tym, że teraz, żeby odczytać wiadomość przez klienta #2, wszyscy klienci muszą tę wiadomość pobrać i sprawdzić, czy wiadomość jest dla nich przeznaczona.
Czy jest jakiś sposób na to, żeby serwer sam "wysłał" wiadomość do odpowiedniego klienta? Jak w ogóle obsłużyć to, żeby serwer czegoś zażądał od podłączonego klienta?
Z góry dzięki za wszelką pomoc.

0

Nie jestem pewien, czy WCF do tego służy. Ja bym użył jakiegoś service busa.

0

Ja, kiedyś, jak pisałem komunikator to na service sprawdzał kto pobiera wiadomości i tylko te przekazywał, które były dla danego klienta

mniej więcej tak:

    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
    public class MessageService : IMessageService
    {
        List<Message> _messages = new List<Message>();

        public void AddMessage(Message message)
        {
            _messages.Add(message);
            Trace.WriteLine(_messages.Count);
        }

        public List<Message> GetMessage(string To)
        {
            List<Message> myMessage = (from message in _messages
                                       where message._toLogin == To
                                       select message).ToList();

            _messages.RemoveAll(x => x._toLogin == To);
            Trace.WriteLine("Pobiera : " + To + "pobrał :" + myMessage.Count);
            return myMessage;
        }
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1