J'ai une application web écrite en Laravel 4. Cette application utilise Ratchet et pour être plus spécifique, elle utilise le paquet Latchet. En tant que sidenote J'utilise les techniques suivantes:Meilleure pratique lors de l'utilisation de Websockets?
Maintenant, je suis arrivé le scénario suivant:
- J'ai un diaporama qui devrait recevoir des mises à jour via le WebSocket.
- L'ensemble de l'application est configuré et je peux publier de nouveaux changements de code de PHP vers mes clients websocket via ZeroMq.
Dans mon routes.php, j'ai le code suivant, de sorte qu'un sujet est correctement enregistré:
//routes.php // Setup a connection and register a topic where clients can connect to. Latchet::connection('Connection'); Latchet::topic('PhotoStream/{client}', 'PhotoStreamController');
Ensuite, je commence le serveur à cliquet.
sudo php artisan latchet:listen
Lorsqu'une photo se téléchargé, je puis exécutez le code suivant pour pousser les mises à jour aux clients qui écoutent mon sujet (PhotoStream/client1
dans ce cas):
// Create the object, save it to db and then publish it to my websockets
$photo = new Photo;
$photo->location = 'path/to/file';
$photo->save();
// Publish it through my websocket clients. (push from server).
Latchet::publish('PhotoStream/client1', array('msg' => $photo->toArray()));
Ce code fonctionne, mais c'est en cas de mise à jour. Ma question est la suivante:
Comment dois-je gérer l'initialisation du client? Dois-je d'abord rendre la page avec du vieux PHP et ensuite initialiser mon client websocket qui recevra ensuite d'autres mises à jour (s'il y en a) ?.
Je souhaite que vous ayez plus de réponses. Je commence mon voyage en implémentant websockets avec laravel; Je sais peu mais ma recherche continue. –
Certainement me tenir au courant! –
Eh bien, n'utilisez pas BrainSockets. Ils disent qu'ils sont à la v1.0, mais il est impossible pour le serveur de pousser. Je reviendrai quand j'essaierai un autre plugin de socket. –