将Ratchet WsServer与React SecureServer(WSS / SSL)结合使用

问题描述 投票:0回答:1

我们正在尝试通过安全连接(WSS)实现websockets并在我们的项目中实现cboden / ratchet。所有工作正常连接正常。在文档和Github项目页面中查看,似乎新的React SecureServer类尚未在Ratchet中实现。

在我们发现a post about it的问题中,它不会被支持,直到后来的版本,但是,我们现在需要它:D在问题报告中他们建议使用新的React SecureServer类和Ratchet类。我们试过并得到了一个致命错误:

Catchable fatal error: Argument 1 passed to React\Socket\SecureServer::__construct() must be an instance of React\Socket\Server, instance of Ratchet\Http\HttpServer given.

出错的部分:

$webServer = new Ratchet\Server\IoServer(
    new React\Socket\SecureServer( // Using React class here as suggested
        new Ratchet\Http\HttpServer(
            new Ratchet\WebSocket\WsServer(
                new Ratchet\Wamp\WampServer(
                    $pusher
                )
            )
        )
    ),
    $webSock, 
    array(
        'local_cert' => 'xxxx.pem',
        'allow_self_signed' => true,
        'verify_peer' => false
    )
);

我们做些蠢事吗? :p

ssl ratchet reactphp
1个回答
0
投票

安全服务器应该包装在套接字服务器上,而不是HTTP服务器:

  $webServer = new Ratchet\Server\IoServer(
    new Ratchet\Http\HttpServer(
        new Ratchet\WebSocket\WsServer(
          new Ratchet\Wamp\WampServer(
            $pusher
          )
        )
      )
    ),
    new React\Socket\SecureServer( // Using React class here as suggested
      $webSock,
      $loop,
      array(
        'local_cert' => 'xxxx.pem',
        'allow_self_signed' => true,
        'verify_peer' => false
      )
    )
  );
© www.soinside.com 2019 - 2024. All rights reserved.