Ratchet + Symfony3:如何从外部访问当前服务器

Lun*_*man 6 php websocket ratchet symfony-3.4

这是我用于websocket服务器目的的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();
Run Code Online (Sandbox Code Playgroud)

如你所见,我有一个chatManager简单的使用Symfony3自动装配.该服务实现了Ratchet MessageComponentInterface.

现在,我想从连接外部访问服务器.我的意思是,使用my向websocket客户端发送消息chatManager,显然我需要访问chatManager存储在WsServer中的实例,并保留有关所有活动连接的信息.

可能吗?谢谢.

Sve*_*vak 0

您不需要仅仅为了发送消息而访问 chatManager。它是一个聊天服务器,其唯一目的是从所有客户端传输消息或向所有客户端传输消息。

只需创建一个 websocket 客户端,将其连接到您的服务器(以及其他客户端)并开始发送(和接收)消息。任何特殊功能(例如仅向一个客户端发送消息或获取所有客户端的列表等)都必须在 chatManager (Ratchets MessageComponentInterface) 中实现。

也许我误解了这个问题,抱歉。