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

标签 ssl ratchet reactphp

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

在我们发现的问题中a post about it ,直到更高版本才会支持它,但是,我们现在需要它:D 在问题报告中,他们建议结合使用新的 React SecureServer 类和 Ratchet 类。我们尝试并得到了一个 fatal error :

可捕获的 fatal error :传递给 React\Socket\SecureServer::__construct() 的参数 1 必须是 React\Socket\Server 的实例,给定的 Ratchet\Http\HttpServer 实例。

出错的地方:

$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

最佳答案

安全服务器应该包裹在套接字服务器周围,而不是 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
      )
    )
  );

关于ssl - 将 Ratchet WsServer 与 React SecureServer (WSS/SSL) 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47993487/

相关文章:

php - 实时应用程序 Symfony - 使用什么技术?

php - react loop->addPeriodicTimer 的最大间隔为 2147 秒

.net - 如果没有 SSL,RabbitMQ 身份验证是否安全?

apache - Seafile 安装 - {"detail":"Authentication credentials were not provided."}

amazon-web-services - AWS Cloudfront 级别的 SSL 卸载

php - 在 C :\wamp\www\bin\chat-server. php 中找不到类 'MyChat\Chat'

php - 使用 ReactPHP 定期向 Ratchet 中的特定客户端发送消息

rabbitmq - 使用 react\stomp 仅使用来自 RabbitMQ 的 N 条消息,分别确认它们然后退出

python - peewee mysql SSL : CERTIFICATE_VERIFY_FAILED

javascript - 让js和css与Ratchet的push.js一起工作