Skocz do zawartości
Opublikowano

image.png.a144663d4007d16872d3413c4a1a8bf3.png

 

Cześć wszystkim,

 

Przedstawiam przykładowe rozwiązanie dotyczące problemów z połączeniem serwera.

 

Po krótce, co to za błąd?

Problem ten pojawia się, gdy gracz próbuje nawiązać połączenie z serwerem, ale serwer nie odpowiada. W takiej sytuacji gracz otrzymuje komunikat "Zostaniesz połączony z serwerem", który wisi cały czas. Problem ten może również występować podczas teleportacji, w wyniku czego gracz zostaje zatrzymany i nie może dalej grać.

 

Rozwiązanie:

Wdrożymy specjalny mechanizm, który podczas problemów sieciowych z serwerem będzie nawiązywał kolejną próbę połączenia, co 1 sekundę. Takie rozwiązanie zostało już opublikowane na innym forum przez Kena i ma spore wady. Takie podejście, będzie generowało dodatkowe obciążenie sieci. Wdrożymy więc strategie nazywaną exponential backoff, która pozwoli na bardziej efektywne zarządzanie ponownymi próbami połączenia w przypadku błędów. W tej strategii, czas oczekiwania między kolejnymi próbami jest stopniowo zwiększany, co redukuje ryzyko nadmiernego obciążenia serwera. Użyłem tu również chrono do obsługi limitu czasu połączenia zamiast time(NULL), chrono umożliwia większą precyzję. 

 

 

Implementacja:

📂 Lokalizacja pliku: 'EterLib -> NetStream.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

📂 Lokalizacja pliku: 'EterLib -> StdAfx.h'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj:

🔐 Ukryta Treść 🔐

 

Featured Replies

Opublikowano

ciekawie... dzięki!

Opublikowano

Dzięki

Opublikowano

Bardzo Ci dziękuję za pomoc!


 

image.png

Opublikowano
  • Autor

Sprawdź definicję funkcji ::Connect w 'NetStream.h' powinieneś mieć tak:

 

bool Connect(const CNetworkAddress& c_rkNetAddr, int limitSec = 3);

 

  • 2 tygodnie później...
Opublikowano

Dziękuje

  • 1 miesiąc temu...
Opublikowano

dzięki!

  • 1 miesiąc temu...
Opublikowano
  • Premium

dzięki

Opublikowano

Piękna sprawa, oby tak dalej.

Opublikowano

thx

  • 4 tygodnie później...
Opublikowano

thx

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...