sql >> Databáze >  >> RDS >> Mysql

Což je efektivnější posílat aktualizace WebSocket se změnou databáze MySQL

Pokud používáte websockets, měli byste používat upozornění od klienta. To je jeden z jejich hlavních případů použití.

Pokud se obáváte nesrovnalostí kvůli výpadkům připojení nebo něčemu, co se mezi tím změnilo, můžete implementovat systém podobný HTTP Etagy , kde klient odešle hash kód, na který můžete odpovědět na straně serveru, pokud dojde ke konfliktu při aktualizaci.

Aktualizace:Myslím, že jsem váš počáteční problém pochopil trochu špatně. Pokud správně rozumím vašemu případu použití:odesíláte aktualizace databáze z klienta a poté je třeba aktualizovat všechny připojené klienty. V takovém případě si myslím, že server by měl posílat aktualizační zprávy po provedení aktualizací DB, takže souhlasím s řešením 4. Zde předpokládám, že váš websocket server je stejný server, na kterém běží PHP a provádí aktualizace DB.

V závislosti na vašem případu použití by však klient měl při příštím požadavku stále odeslat hodnotu hash, která identifikuje jeho „pohled na svět“, takže v případě přerušení připojení byste neprováděli stejné aktualizace vícekrát.

Aktualizace 2:takže nyní bylo jasné, že skutečně používáte samostatný, samostatný websocket server. V zásadě máte na straně serveru dva různé webové servery a máte problém s tím, jak mezi nimi komunikovat. Toto je skutečný problém a doporučoval bych používat pouze jeden server najednou - buď se podívejte na použití Podpora Apache websocket (experimentální a nedoporučované) nebo migraci vašich php skriptů do instance websocket.

Ani PHP, ani Apache nebyly ve skutečnosti vytvořeny s ohledem na websockety. Je docela snadné nastavit samostatný websocket server pouze pomocí PHP, ale nemusí být tak snadné migrovat na něj zbytek PHP, pokud kód spoléhá na Apache/webový server. Podpora websocket Apache také není optimální. Pro skutečné řešení websocket by bohužel nejlepším postupem bylo použití technologie, která je pro něj od základu vytvořena.



  1. SQL Query - připojení k datu kratšímu nebo stejnému

  2. Propojení Google Cloud SQL s Wordpress na Google Compute Engine

  3. Jak přejmenovat tabulku v aplikaci Access

  4. SQLAlchemy a UnicodeDecodeError