Храповик + Symfony3: как получить доступ к текущему серверу извне - PullRequest
0 голосов
/ 31 августа 2018

Вот моя команда Symfony3, которую я использую для сервера веб-сокетов

    public function __construct(ChatFlowProcessor $chatManager, int $webSocketPort)
    {
        $this->chatManager = $chatManager;
        $this->webSocketPort = $webSocketPort;
        parent::__construct();
    }

    $server = IoServer::factory(
        new HttpServer(
            new WsServer(
                $this->chatManager
            )
        ),
        $this->webSocketPort
    );
    $server->run();

Как видите, у меня есть chatManager, просто использующий автоматическую разводку Symfony3. Сервис реализует Ratchet MessageComponentInterface.

Теперь я хочу получить доступ к серверу извне соединения. Я имею в виду, отправив сообщение клиенту websocket, используя мой chatManager, по-видимому, мне нужно получить доступ к экземпляру chatManager, который хранится в WsServer, и хранить информацию обо всех активных соединениях.

Возможно ли это? Спасибо.

1 Ответ

0 голосов
/ 07 сентября 2018

Вам не нужен доступ к chatManager только для отправки сообщений. Это чат-сервер, единственной целью которого является передача сообщений всем своим клиентам.

Просто создайте клиент websocket, подключите его к вашему серверу (вместе с другими клиентами) и начните отправлять (и получать) сообщения. Любые специальные функции (например, отправка сообщения только одному клиенту или получение списка всех клиентов и т. Д.) Должны быть реализованы в chatManager (Ratchets MessageComponentInterface).

Возможно, я неправильно понял вопрос, извините.

...