sql >> Database teknologi >  >> RDS >> Mysql

Hvilket er mere effektivt at sende WebSocket-opdateringer med en MySQL-databaseændring

Hvis du bruger websockets, bør du bruge notifikationer fra klienten. Det er en af ​​deres vigtigste use cases.

Hvis du er bekymret for uoverensstemmelser på grund af afbrydelse af forbindelsen eller noget, der ændrer sig derimellem, kan du implementere et system, der ligner HTTP ETags , hvor klienten ville sende en hash-kode, som du kan svare på serversiden, hvis der er en konflikt i opdateringen.

Opdatering:Jeg tror, ​​jeg forstod dit oprindelige problem lidt forkert. Hvis jeg forstår din use case korrekt:du sender databaseopdateringer fra en klient og derefter skal alle tilsluttede klienter opdateres. I så fald mener jeg, at serveren skal sende opdateringsmeddelelserne efter DB-opdateringer er blevet udført, så jeg er enig i løsning 4. Jeg antager her, at din websocket-server er den samme server, der kører PHP og laver DB-opdateringerne.

Afhængigt af dit brugstilfælde skal klienten dog stadig sende en hashværdi på den næste anmodning, der identificerer dens "udsigt over verden", så du ville ikke lave identiske opdateringer flere gange, hvis en forbindelse afbrydes.

Opdatering 2:så det blev nu forstået, at du faktisk bruger en separat, selvstændig websocket-server. Grundlæggende har du to forskellige webservere på serversiden og har et problem med, hvordan du kommunikerer mellem de to. Dette er et reelt problem, og jeg vil anbefale kun at bruge én server ad gangen - enten tag et kig på at bruge Apache websocket-understøttelse (eksperimentelt og ikke rigtig anbefalet) eller migrering af dine php-scripts til websocket-forekomsten.

Hverken PHP eller Apache blev virkelig bygget med websockets i tankerne. Det er ret nemt at konfigurere en selvstændig websocket-server, der kun bruger PHP, men det er måske ikke så nemt at migrere resten af ​​PHP-stakken til den, hvis koden er afhængig af Apache/webserveren. Apache websocket-understøttelse er heller næppe optimal. For en rigtig websocket-løsning ville bedste praksis desværre være at bruge en teknologi, der er bygget til det fra bunden.



  1. Importer filstørrelsesgrænse i PHPMyAdmin

  2. Oracle trim hvidt mellemrum på indersiden af ​​en streng

  3. Oracle-datakildekonfiguration til Spring

  4. Hvordan konverterer jeg denne Access Query til mySQL-forespørgsel