Rozwinąłem serwer czatu używając websocket w kowboju, ale chcę wiedzieć, czy wiadomość wysłana przez serwer do sukcesu klienta. Jak mogę się dowiedzieć?Skąd mogę wiedzieć, czy wiadomość wysłana przez websocket nie powiodła się, czy nie
Odpowiedz
Websocket to dość cienka warstwa abstrakcji na szczycie konwencjonalnego gniazda TCP. Po wstępnym uzgadnianiu różnica jest minimalna. Pytanie brzmi: skąd mam wiedzieć, czy fragment danych został odebrany przez zdalnego peera? Krótka odpowiedź: tylko wtedy, gdy peer potwierdza to wyraźnie za pomocą protokołu na poziomie aplikacji. Klient zdalny wyśle pakiety TCP ACK dla każdego wysłanego pakietu danych, ale fakt ten jest dobrze ukryty w aplikacji z ważnych powodów. Odbieranie pakietu ACK oznacza, że zdalny stos TCP zajął się nim, ale nie mówi nic o tym, jak (i czy) aplikacja klienta go przetworzyła.
Dodaj specjalny komunikat "potwierdzenie odbioru" do swojego protokołu czatu. Dodaj monotonicznie rosnący numer sekwencji we wszystkich wiadomościach wychodzących i umieść SN w odebranej wiadomości w komunikacie ACK, aby dokładnie wiedzieć, ile danych klient już przetworzył.
- 1. Skąd mam wiedzieć, czy mogę wyłączyć SQLALCHEMY_TRACK_MODIFICATIONS?
- 2. Jak sprawdzić, czy wiadomość została pomyślnie wysłana?
- 3. Skąd mogę wiedzieć, czy obiekt pochodzi z określonej klasy ogólnej?
- 4. Skąd mam wiedzieć, czy system jest włączony?
- 5. Skąd mogę wiedzieć, w jakim OS pracuje?
- 6. Jak sprawdzić, czy wiadomość została wysłana podczas korzystania z Zend_Mail?
- 7. A websocket za nie czekają całą wiadomość
- 8. Skąd mam wiedzieć, czy połączenie jest aktywne z gniazdami internetowymi?
- 9. W Xcode skąd mam wiedzieć, czy mój obraz działa poprawnie?
- 10. Wiadomość Android GCM została pomyślnie wysłana, ale nie została odebrana.
- 11. Przetwarzanie adnotacji Java: skąd mam wiedzieć, czy runda jest ostatnia?
- 12. Skąd mam wiedzieć, czy moja przeglądarka obsługuje SVG 2.0?
- 13. Skąd mam wiedzieć, czy mój serwer ma NUMA?
- 14. - [Nie typ _cfTypeID]: wiadomość wysłana do deallocated instancji
- 15. Skąd mam wiedzieć, czy właściwość jest kolekcją generyczną?
- 16. Instalacja dokowania nie powiodła się
- 17. Unikaj wiadomości Gmaila "Ta wiadomość mogła nie zostać wysłana przez" przy użyciu nagłówka nadawcy
- 18. Czy serwer Ratchet WebSocket może wysłać wiadomość do samego klienta?
- 19. Skąd mam wiedzieć ze strony CPAN modułu, czy znajduje się w dystrybucji rdzenia?
- 20. Jak wiedzieć, czy __uint128_t definiuje
- 21. Metoda wyboru klasy zakresu nie powiodła się przez VBA
- 22. Czy mogę wiedzieć, czy obraz jest przezroczysty w określonej pozycji?
- 23. reagować Material-ui, Skąd mam wiedzieć, czy mogę użyć przycisku onClick for?
- 24. Określić, czy zakończyło się wysyłanie websocket()
- 25. [Zwolnienie CFString]: wiadomość wysłana do zdeklarowanej instancji
- 26. Skąd mogę wiedzieć, że mój ciąg zawiera znaki diakrytyczne?
- 27. Nie można się pozbyć: atrybut wyszukiwania wbudowany.funkcja nie powiodła się
- 28. Skąd mam wiedzieć, czy strona php pochodzi od POST czy GET?
- 29. Skąd mogę wiedzieć, czy folder istnieje przed utworzeniem go w laravel?
- 30. błąd git: gnutls_handshake() nie powiodła się naciśnięciem
Powinieneś wrócić i wybrać odpowiedź na swoje pytanie – thedouglenz