Ik heb een programma waarmee ik de mogelijkheig wil bieden dat een gebruiker een bericht kan typen en alle andere gebruikers dit bericht in hun scherm krijgen.
Ik kan dit op twee manieren doen:
- AJAX laten pollen
- Socket luisteren
Ik koos voor Socket omdat met AJAX blijft hij pollen met een interval. Dat is niet handig in dit geval. Pollen is een process dat bezig blijft. Dat wil ik niet.
Ik heb het volgende gemaakt.
Dit werkt perfect. Als je maar 1 bericht stuurt. Om dat na 1x lezen stopt hij met lezen. Om hem weer aan de praat te krijgen moet ik de pagina herladen. Dat is niet handig.
Nu kan ik wel een while loop doen.
Dit werkt. Nu gebruikt hij de default timeout. 60s. Ik kan een eigen timeout meegeven. Dit kan ik bv op 3600 zetten of langer.
Het nadeel is van een while loop dat de pagina blijft laden. Ik kom niet tot een oplossing voor het oneindig luisteren zonder dat de pagina blijft laden
Kan dat geen kwaad? Is dit de juiste oplossing? Wat is jullie mening/ervaring
Ik kan dit op twee manieren doen:
- AJAX laten pollen
- Socket luisteren
Ik koos voor Socket omdat met AJAX blijft hij pollen met een interval. Dat is niet handig in dit geval. Pollen is een process dat bezig blijft. Dat wil ik niet.
Ik heb het volgende gemaakt.
PHP:
1
2
3
4
5
6
| $socket = stream_socket_server('tcp://127.0.0.1:1234', $errno, $errstr); $conn = @stream_socket_accept($socket); $message= fread($conn, 1024); echo $message.'<BR>'; |
Dit werkt perfect. Als je maar 1 bericht stuurt. Om dat na 1x lezen stopt hij met lezen. Om hem weer aan de praat te krijgen moet ik de pagina herladen. Dat is niet handig.
Nu kan ik wel een while loop doen.
PHP:
1
2
3
4
5
| while($conn = @stream_socket_accept($socket)) { $message= fread($conn, 1024); echo $message.'<BR>'; } |
Dit werkt. Nu gebruikt hij de default timeout. 60s. Ik kan een eigen timeout meegeven. Dit kan ik bv op 3600 zetten of langer.
Het nadeel is van een while loop dat de pagina blijft laden. Ik kom niet tot een oplossing voor het oneindig luisteren zonder dat de pagina blijft laden
Kan dat geen kwaad? Is dit de juiste oplossing? Wat is jullie mening/ervaring
[ Voor 6% gewijzigd door Jochemmol op 07-01-2008 13:46 . Reden: Oneindig laden ]
Jochemmol