Ho un'applicazione web scritta in Laravel 4. Questa applicazione utilizza Ratchet e per essere più specifica utilizza il pacchetto Latchet. Come sidenote sto utilizzando le seguenti tecniche:La migliore pratica quando si utilizzano websockets?
Ora ho il seguente scenario:
- Ho una presentazione che dovrebbe ricevere aggiornamenti tramite il websocket.
- L'intera applicazione è impostata e posso pubblicare nuove modifiche al codice da PHP ai miei client Websocket tramite ZeroMq.
Nel mio routes.php, ho il seguente codice, in modo che un argomento è registrato correttamente:
//routes.php // Setup a connection and register a topic where clients can connect to. Latchet::connection('Connection'); Latchet::topic('PhotoStream/{client}', 'PhotoStreamController');
Poi, ho avviare il server cricchetto.
sudo php artisan latchet:listen
Quando una foto viene caricato, posso quindi eseguire il seguente codice per spingere gli aggiornamenti ai client in ascolto al mio argomento (PhotoStream/client1
in questo caso):
// 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()));
Questo codice funziona tutto, ma è in caso di un aggiornamento. La mia domanda è la seguente:
Come devo gestire l'inizializzazione del client?
- Devo prima il rendering della pagina con la pianura vecchio PHP e poi inizializzare il mio cliente websocket che poi ricevere ulteriori aggiornamenti (se ce ne sono) ?.
- O dovrei, quando registro un nuovo client websocket, fornire un parametro aggiuntivo con la richiesta in modo che il server mi invii i dati completi tramite websocket?
Quest'ultima opzione sembra l'opzione migliore per me, ma non so davvero come implementarla in modo corretto.
Vorrei avere più risposte. Sto iniziando il mio viaggio implementando websockets con laravel; Conosco poco ma la mia ricerca continua. –
Sicuramente tienimi aggiornato! –
Beh, sicuramente non usare BrainSockets. Dicono che sono alla v1.0, ma è impossibile che il server lo spinga. Controllerò quando provo un altro plug-in per socket. –