Cześć,
chce napisać prosty serwer ale zastanawiam się jak rozwiązać jedną kwestię. Do serwera będą podłączać się klienci, wysyłać prośby o różne informacje a serwer będzie je odsyłać.
Wymyśliłem 2 rozwiązania:
- dla każdego Klienta odpalę osobny wątek, gdzie będę odbierać od niego informacje i odsyłać dane,
- stworzę kolejkę informacji przychodzących do serwera a następnie je parsować, zwracać dane i odsyłać do nadawcy (których będę trzymać w jakieś mapie czy tablicy).
Oba te rozwiązania są do zrobienia (szczerze to już nawet kiedyś je zaimplementowałem) ale cały czas mam co do nich wątpliwości. Gdyby na tym miało się skończyć to nie ma problemu. Jednak czasami klient A chce wysłać wiadomość do klienta B.
Jak w takiej sytuacji rozwiązać problem przekazywania danych od A do B?
Mogę odbierać dane od klientów w wątkach ale odpowiedzi wrzucać do jakiegoś zbiorczego bufora gdzie jednym wątkiem będę rozsyłać informacje do odbiorców?
Jak to rozwiązać żeby było najbardziej optymalne i eleganckie? Jak to się robi w "poważnych" aplikacjach?
Bardzo proszę o pomoc.
Dzięki! :)