Hoi,
Ik weet dat er frameworks zijn die geschikter zijn, maar ik probeer een oplossing te bouwen in PHP die gebruik maakt van long polling. In de communicatie tussen client en server snap ik denk ik redelijk hoe de vork in de steel zit, maar aan de serverkant blijf ik zitten met de vraag hoe dit efficitent kan worden ingezet.
De meeste voorbeeldscripts werken met een while loop waarin een database of bestand wordt gecheckt op wijzigingen met daarna een sleep. Dat betekent nog steeds loeiveel overhead natuurlijk. Nou vroeg ik mij af of het mogelijk was om ook serverside wat slimmer te werken. Ik dacht taan de volgende opzet:
1. Een binnengekomen request bevat een json lijstje van variabelen die in de gaten moeten worden gehouden.
2. Het script dat de request behandelt doet niks anders dan deze variabelen ergens (db?) noteren en GEEN response sturen (kan dat netjes?).
3. Zodra er een variabele verandert en deze voorkomt in het lijstje uit stap 2 dan naar alle watchers handmatig een reply met de nieuwe waarde sturen.
Is dit inderdaad een slimmere opzet en is dit haalbaar? Is het mogelijk om geen reply te sturen op een request en vervolgens handmatig een reply te sturen naar alle andere clients uit een lijstje? Zoja hoe?
Ik weet dat er frameworks zijn die geschikter zijn, maar ik probeer een oplossing te bouwen in PHP die gebruik maakt van long polling. In de communicatie tussen client en server snap ik denk ik redelijk hoe de vork in de steel zit, maar aan de serverkant blijf ik zitten met de vraag hoe dit efficitent kan worden ingezet.
De meeste voorbeeldscripts werken met een while loop waarin een database of bestand wordt gecheckt op wijzigingen met daarna een sleep. Dat betekent nog steeds loeiveel overhead natuurlijk. Nou vroeg ik mij af of het mogelijk was om ook serverside wat slimmer te werken. Ik dacht taan de volgende opzet:
1. Een binnengekomen request bevat een json lijstje van variabelen die in de gaten moeten worden gehouden.
2. Het script dat de request behandelt doet niks anders dan deze variabelen ergens (db?) noteren en GEEN response sturen (kan dat netjes?).
3. Zodra er een variabele verandert en deze voorkomt in het lijstje uit stap 2 dan naar alle watchers handmatig een reply met de nieuwe waarde sturen.
Is dit inderdaad een slimmere opzet en is dit haalbaar? Is het mogelijk om geen reply te sturen op een request en vervolgens handmatig een reply te sturen naar alle andere clients uit een lijstje? Zoja hoe?