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.