(szybka) komunikacja pomiędzy komputerami w Internecie

0

Mamy 2 (albo więcej) maszyn podpiętych do Internetu poprzez różne modemy, operujące z różnego IP.

Potrzebne jest zapewnienie szybkiej komunikacji, powiedzmy z kilkusekundowym opóźnieniem pomiędzy

  • komputer nadawca,
  • komputer(y) odbiorc(y).

Przekazywana informacja jest minimalistyczna, góra kilkadziesiąt bajtów.
Przekazywana informacja / stan zmienia się stosunkowo rzadko, powiedzmy raz na kilka minut.


Rozwiązaniem, które przychodzi mi do głowy, jest wykorzystanie serwera, na który wysyłany jest stan, i który zwraca go po odpytaniu. I zasadniczo powinien przeżyć kilkadziesiąt zapytań na minutę.

Pytanie brzmi: czy można zrobić to jakoś lepiej i potencjalnie bardziej skalowalnie?

Słowem, które mi się kojarzy w takim kontekście jest: WebSocket
Czy o tym właśnie mam poczytać, czy są jakieś inne metody?

1

Jest coś takiego jak WebRTC, ale nie używałem, rzucam tylko hasło do sprawdzenia, bo wygląda na coś, co rozwiązuje ten problem: https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API

1

Weź tutaj zoba, są tam apki "realtime"
https://pusher.com/tutorials

2

Przekazywana informacja jest minimalistyczna, góra kilkadziesiąt bajtów.
Przekazywana informacja / stan zmienia się stosunkowo rzadko, powiedzmy raz na kilka minut.

Myślę, że zwykłe https://en.wikipedia.org/wiki/Push_technology#Long_polling wystarczy

1

Bez serwera się nie obejdzie skoro te komputery nie są w tej samej sieci. Nawet jeżeli użyjesz WebRTC (komunukacja klient-klient) to i tak będzie Ci potrzebny serwer https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer (ale są jakieś darmowe np. od google które może wystarczą). Jak skorzystasz z WebSocket to też potrzebujesz serwera jako, że jest to komunikacja klient-serwer.

Kilkusekundowe opóźnienie czy też kilkadziesiąt zapytań na minutę to żadne wyzwanie, można tutaj wykorzystać cokolwiek bez żadnych fajerwerków.

1

Może jednak podaj więcej szczegółów.

  1. Kolejka komunikatów / komunikacja typu publish-subscribe. Na przykład NATS, ActiveMQ, RabitMQ. Przy pomocy Redisa też można osiągnąć semantykę kolejki albo modelu pub-sub.
  2. Baza klucz-wartość i obserwowanie zawartości. Sprawdź Redis, Riak, albo etcd.

PS. Kilka sekund opóźnienia to nie jest szybko ...

0

Dobra, problem upadł, bo wyszło, że będę robić po prostu zespół niezależnych botów, które nie muszą się ze sobą komunikować.

Ale dziękuję za wszystkie odpowiedzi :) Możliwe, że kiedyś jeszcze wrócę do tematu.

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