Najlepszy sposób na wymianę strumienia Online

0

Piszę aplikacje online i chciałbym wiedzieć jaki sposób na wymianę danych między serwerem a klientami jest najlepszy.
Myślałem nad sposobami i dotychczas wpadłem na takie:

  • klienci wysyłają niezbędne dane , serwer je odbiera i rozsyła do pozostałych klientów (przykładowy schemat: (klient1 - > serwer -> wszyscy klienci po za 1)(klient2 - > serwer -> wszyscy klienci po za 2) itd..)
  • zarówno klienci jak i serwer posiadają informacje o adresach i swoje dane rozsyłają osobiście do każdego z adresatów.
    przykładowy schemat: (klient1 -> serwer) (klient1 -> klient2)(klient2 -> serwer) (klient2 -> klient1)(serwer -> klient1) (serwer -> klient2).

Powiedzcie z jakiej metody powinno się korzystać, podajcie także inne metody jeśli takie istnieją :o.

Z góry dziękuję i pozdrawiam.

0

Najprostszy:

  1. Klient X informuje serwer o tym że ma dane do wysłania.
  2. Serwer informuje pozostałych że Klient X (od razu adres) ma dane do wysłania.
  3. Każdy z klientów (o ile chce, ze swoją prędkością) prosi Klient X o te dane.
0

Każdy klient informuje wszystkich innych klientów jest IMHO najprostszy i zarazem najskuteczniejszy (P2P). Po co w ogóle wtedy Ci centralny serwer?

0
Krolik napisał(a):

A skąd klient wie o innych klientach?

centralny serwer nie jest potrzebny
ale potrzebne jest info o przynajmniej jednym innym użytkowniku
można też stworzyć wiele mniejszych serwerów, typowa centralizacja nie jest w każdym razie potrzebna

0
gdfgsdfg napisał(a):

centralny serwer nie jest potrzebny

gdfgsdfg napisał(a):

można też stworzyć wiele mniejszych serwerów, typowa centralizacja nie jest w każdym razie potrzebna

Owszem jak masz kilka mniejszych serwerów to jeden centralny nie jest potrzebny, ale ja mówiłem o najprostszej konfiguracji.

gdfgsdfg napisał(a):

ale potrzebne jest info o przynajmniej jednym innym użytkowniku

No ciekawe, ja wiem o tobie, ty wiesz o mnie a skąd mamy dowiedzieć się o pozostałych stu tysiącach.
Wiem że istnieje takie coś jak graf spójny, ale ktoś musi tego pilnować, poza tym (przy takiej konfiguracji) istnieje niebezpieczeństwo że po wyłamaniu się jednego użytkownika całą sieć przestanie być spójną.

0
gdfgsdfg napisał(a):

ale potrzebne jest info o przynajmniej jednym innym użytkowniku

No ciekawe, ja wiem o tobie, ty wiesz o mnie a skąd mamy dowiedzieć się o pozostałych stu tysiącach.</quote>

ktoś z nas musiał być wcześniej i spełnić ten sam warunek, czyli wiedzieć o kimś innym
z tego niemożliwe jest żeby wiedzieć tylko o sobie nawzajem

wiadomo że lepiej będzie to działać mając informacje o większej ilości userów

0

Jeśli zasięg byłby mały -> sieć lokalna, to multicast byłby najłatwiejszy.
Jesli zasięg jest duży to faktycznie rozwiązanie p2p byłoby najwygodniejsze ale generuje problemy przy ustalaniu kto o kim wie i kto do kogo pisze.

0

Nie bardzo widzę, co niby takiego skomplikowanego jest w P2P. Po prostu każdy węzeł trzyma sobie listę wszystkich pozostałych serwerów. W momencie jak się nowy serwer dołącza, to dostaje listę serwera od dowolnego serwera i wita się ze wszystkimi pozostałymi, które go dopisują do swojej listy.

0

O ile wszyscy są online 7 dni razy 24 godziny i nigdy nie miewają zaniku prądu lub innej awarii - to oczywiście zwykle P2P jest najprostsze.

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