Als u websockets gebruikt, moet u meldingen van de klant gebruiken. Dat is een van hun belangrijkste gebruiksscenario's.
Als je je zorgen maakt over inconsistenties als gevolg van het wegvallen van de verbinding of iets dat daartussen verandert, kun je een systeem implementeren dat lijkt op HTTP-ETags , waar de client een hash-code zou verzenden die u aan de serverkant kunt beantwoorden als er een conflict is bij het bijwerken.
Update:ik denk dat ik je eerste probleem een beetje verkeerd heb begrepen. Als ik je use case goed begrijp:je verstuurt database-updates van een client en daarna moeten alle aangesloten clients worden bijgewerkt. In dat geval denk ik dat de server de updateberichten moet verzenden nadat DB-updates zijn uitgevoerd, dus ik ben het eens met oplossing 4. Ik ga er hier van uit dat uw websocket-server dezelfde server is waarop PHP wordt uitgevoerd en de DB-updates uitvoert.
Afhankelijk van uw gebruikssituatie, moet de klant echter nog steeds een hash-waarde verzenden bij het volgende verzoek om zijn "kijk op de wereld" te identificeren, zodat u niet meerdere keren identieke updates uitvoert als een verbinding wordt verbroken.
Update 2:zo werd nu begrepen dat je inderdaad een aparte, standalone websocket server gebruikt. In principe heb je twee verschillende webservers aan de serverkant en heb je een probleem met de communicatie tussen de twee. Dit is een reëel probleem en ik raad aan om slechts één server tegelijk te gebruiken - kijk eens naar het gebruik van Apache websocket-ondersteuning (experimenteel en niet echt aanbevolen) of het migreren van uw php-scripts naar de websocket-instantie.
Noch PHP noch Apache is echt gebouwd met websockets in gedachten. Het is vrij eenvoudig om een zelfstandige websocket-server op te zetten met alleen PHP, maar het is misschien niet zo eenvoudig om de rest van de PHP-stack ernaartoe te migreren als de code afhankelijk is van Apache/webserver. Apache websocket ondersteuning is ook nauwelijks optimaal. Voor een echte websocket-oplossing is het helaas het beste om een technologie te gebruiken die er vanaf het begin voor is gebouwd.