Czyli jakiś serwer, który będzie miał obsługę żądań, komunikację z klientem, może dodam też możliwość komunikacji z wieloma klientami na raz i komunikację klientów między sobą.
Nie jest to nic na zaliczenie, czysto hobbystyczny projekt. Nie wiem jak coś takiego się pisze (nie studiowałem informatyki, a w temacie sieci i programowania sieciowego nigdy nie siedziałem), nigdy nic podobnego nie pisałem.
Znacie jakieś przystępne materiały, które dotyczą podobnej tematyki w Rubym? Jakieś gniazda sieciowe itp. Słowem co by trzeba poczytać, jakie materiały przejrzeć, żeby móc się w coś takiego pobawić i stworzyć coś działającego.
Poniewaz GServer + wielu klientow oznacza byc moze dostep do dzielonych zasobow, to o ile nie bedzie to cos, co siedzi w jakiejs bazie danych (postgresql, mongo, redis) - czyli np. prosta tablica albo hash w klasie serwera, bedziesz musial synchronizowac dostep do niej (odczyt / zapis) korzystajac np. z Mutexa - http://www.ruby-doc.org/core-2.1.2/Mutex.html
Jesli w koncu klienci rowniez powinny umiec sie ze soba komunikowac, wowczas byc moze kazdy ‘program’ moglby byc jednoczesnie serwerem i klientem. Wtedy robi sie to bardziej jako architektura peer-to-peer - i np. przydalby sie mechanizm ‘odkrywania’ klientow (ich adresow / portow). Choc zawsze mozna wydzielic serwer ‘glowny’ ktory chodzi pod znanym adresem, ktory nastepnie buduje informacje o klientach laczacych sie z nim, ktorzy rowniez staja sie serwerami. I wtedy kazdy z klientow moze taki serwer odpytac o np. liste takich klientow-serwerow albo np. o najblizszy (zakladajac ze sie da to wyliczyc np. po IP)