我们正在尝试通过安全连接(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
答案 0 :(得分: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
)
)
);