Sto lavorando in un tempo reale Symfony applicazione utilizzando Ratchet biblioteca, in questa applicazione ho bisogno di inviare alcuni dati di un utente specifico per cui la soluzione logica era quella di utilizzare il SessionProvider che associare un oggetto Symfony2 Session a ciascun oggetto Connection in ingresso. Come afferma la documentazione, ho impostato un gestore di sessione non nativo per memorizzare le mie sessioni, ad esempio in un database tramite PDO. e che funziona bene per il momento, ma ho bisogno di ottenere l'oggetto Connection di un utente specifico per inviarlo alcuni dati così in altro modo ho bisogno di trovare l'oggetto di connessione che fa riferimento a questo utente e non riesco a trovare un modo per fallo ? lei è il mio codice del server:come ottenere l'oggetto di connessione di un utente specifico?
$app=new AggregateApplication();
$loop = \React\EventLoop\Factory::create();
$context = new \React\ZMQ\Context($loop);
$pull = $context->getSocket(\ZMQ::SOCKET_PULL);
$pull->bind('tcp://127.0.0.1:5555');
$pull->on('message', array($app, 'onNotification'));
$webSock = new \React\Socket\Server($loop);
$webSock->listen(8080, '127.0.0.1');
$handler = $this->getContainer()->get('session.handler');
$server=new \Ratchet\Wamp\WampServer($app);
$server = new SessionProvider($server, $handler);
$webServer = new \Ratchet\Server\IoServer(new \Ratchet\WebSocket\WsServer($server),$webSock);
$loop->run();
Ma come inviare un messaggio a un utente specifico? Come implementarlo nell'esempio di 2 client connessi a un server WebSocket, ciascuno con il proprio oggetto di connessione: $ ConnSender, $ ConnReceiver? Per favore, per chiarire a me non trovo alcuna risposta a questo sul tag ratchet di SO.thanks –
ogni volta che un utente è connesso al server webs Prendo il suo ID e memorizzo il suo oggetto di connessione in un array indicizzato con il suo ID quindi, quando voglio inviare alcuni dati a quel client, ottengo il suo oggetto di connessione usando il suo ID e io lo uso per inviare i miei dati. –
Capisco cosa intendi, ma per favore lasciami aggiungere un'altra domanda perché non è chiara per me. Quando avrò il mio array contenente due oggetti di connessione con due ID diversi (Id1 di mittente e Id2 di ricevitore), in che modo il server WebSocket otterrà Id2 per inviargli il messaggio? '$ client = $ this-> clients [$ Id2]; $ client-> send (" Message ");' –