![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki temat mam dashboard na którym jest kilkanaście elementów i tam przyciski z różnymi klasami, i w zależności w jakim statusie jest dany element to ma on inną klasę np element ma klasę .error albo .alert I teraz załóżmy ze mam 10 obiektów z klasą .error Wywołuję selektorem kliknięcie na element .error więc powinno się tych 10 elementów kliknąc w ułamku sekundy wszystkie na raz i teoretycznie tak się dzieje ponieważ w konsoli otrzymuje 10 wpisów "WebSocket communication initiated." lecz nie tworzy 10 niezależnych websocketów. To jest kod który zrobiłem, chciałem aby po kliknięciu wywołac odpytanie poprzez javascript by asynchronicznie odwołał się poprzez websocket do serwera php i po zakończeniu wrzuciło zwrotki z serwera php. Lecz problem w tym że niby uruchomiło się 10 odwołań ale na serwerze php widzę jak przeglądarka się łączy poprzez websocket jeden po drugim, nie robi się 10 socketów na raz tylko robi się 1 socket wykonywana jest operacja w php (pętla trwająca 5 sekund) i zwraca do klienta odpowiedź i robi się 2 socket itd.
I w konsoli serwera php widze że sockety sa tworzone jeden po drugim o odstępie okolo 5 sekund czyli po sleepie. A oczekiwanym efektem jest by wszystkie sockety zrobiły się na raz i zwrociły wyniki po tym jak serwer będzie przez websocket wysyłał odpowiedź. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ale ty za każdym wywołaniem tworzysz nowy obiekt WebSocket? Przecież wystarczy jeden, a potem nasłuchujesz zdarzenie onMessage.
Dlaczego w ogóle używasz do tego WebSockets? Jeśli potrzebujesz komunikacji JS<->PHP, to wystarczy Ajax/FetchAPI. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Gdy używam ajaxa to zachowuje się to identycznie, gdy wywołam funkcję która odpytuje url i wysyła POST'em dane to i tak działa to jedno po drugim, czyli wysyła request do serwera pierwszy element i czeka na otrzymanie danych i dopiero leci drugi itd.
Stąd stwierdziłem ze wykorzystam websocket żeby były to osobne sesje. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
skoro uzywasz "synchronicznego" wywolania przy uzyciu await to sie nie dziw ze leci jeden po drugim
![]() swoja droga droga widze to inny blad logiczny bo zamiast wysylac 10 requestow to powinienes zebrac dane i wyslac tylko jeden -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 14:57 |