php - 如何使用 Ratchet 在 ssl (wss) 服务器上启用 keepAlive?
问题描述
我已经实现了一个 Ratchet WSS 服务器,如下所示:
$MyServer = new MyServer();
$app = new Ratchet\Http\HttpServer(
new Ratchet\WebSocket\WsServer(
$MyServer
)
);
$loop = React\EventLoop\Factory::create();
$secure_websockets = new React\Socket\Server('0.0.0.0:6190', $loop);
$secure_websockets = new React\Socket\SecureServer($secure_websockets, $loop, [
'local_cert' => '/path/to/cert.pem',
'local_pk' => '/path/to/privkey.pem',
'verify_peer' => false
]);
$secure_websockets_server = new Ratchet\Server\IoServer($app, $secure_websockets, $loop);
$secure_websockets_server->loop->addPeriodicTimer(1, function () use ($MyServer) {
// loop
}
$app->enableKeepAlive($app->loop, 30);
$secure_websockets_server->run();
服务器在没有 的情况下运行良好$app->enableKeepAlive($app->loop, 30);
,但一旦我添加它就会失败。
PHP Fatal error: Uncaught Error: Call to undefined method Ratchet\Http\HttpServer::enableKeepAlive() in /path/to/server-ssl.php:27
包装的正确方法是keepAlive()
什么?
解决方案
enableKeepAlive() 是 WsServer 类的函数,而不是 HttpServer。试试下面的代码:
$app = new Ratchet\WebSocket\WsServer($MyServer);
推荐阅读
- javascript - 将元素宽度调整为父级中的滚动条
- neural-network - 用于几何图元提取和定位的神经网络
- css - CSS : :not(s) 选择器作为父选择器 + :hover 类误解
- javascript - 如何用 Puppeteer 收听 history.pushstate?
- oozie - OOZIE 工作流程的 lastModTime 是什么?
- javascript - angularJs - 处理错误并设置子范围的属性
- reactjs - 为什么我的组件在我重定向时不呈现
- rxjs - 在订阅时以相反的顺序重播缓存的项目
- c++ - 如何在 Ubuntu-linux 的 Visual Studio 代码中包含库?
- sql - 如何在 where 子句中过滤复合键?