Я работаю в режиме реального времени Symfony приложения с использованием Ratchet библиотеки, в этом приложении мне нужно отправить некоторые данные конкретного пользователя, поэтому логика решения было использовать SessionProvider, который будет прикрепить объект Symfony2 Session для каждого входящего объекта Connection. Как указано в документации, я установил не-собственный обработчик сеанса для хранения моих сеансов, то есть в базе данных через PDO. , и это отлично работает на данный момент, но мне нужно получить объект Connection конкретного пользователя, чтобы отправить ему некоторые данные, поэтому другим способом мне нужно найти объект соединения, который ссылается на этого пользователя, и я не могу найти способ сделай это ? ее мой код сервера:Как получить объект соединения конкретного пользователя?
$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();
Но как отправить сообщение определенному пользователю? Как реализовать это в примере из 2 клиентов, подключенных к одному серверу WebSocket, каждый со своим собственным объектом подключения: $ ConnSender, $ ConnReceiver? Пожалуйста, уточните мне. Я не нахожу никакого ответа на это в теге ratchet SO.thanks –
каждый раз, когда пользователь подключается к серверу веб-сервера, я получаю его идентификатор, и я храню его объект соединения в массив, проиндексированный его идентификатором , поэтому, когда я хочу отправить некоторые данные этому клиенту, я просто получаю его объект соединения, используя свой идентификатор, и я использую его для отправки моих данных. –
Я понимаю, что вы имеете в виду, но, пожалуйста, позвольте мне добавить еще один вопрос, потому что это не ясно для меня. Когда у меня будет массив, содержащий два объекта соединения с двумя разными идентификаторами (Id1 отправителя и Id2 получателя), как сервер WebSocket получит Id2 для отправки ему сообщения? '$ client = $ this-> clients [$ Id2]; $ client-> send (« Message »);' –