From 369227dc1c0e5e016e729d8ab4789a0fd0ba85e4 Mon Sep 17 00:00:00 2001 From: Eliseu dos Santos Date: Tue, 21 Feb 2017 09:22:38 -0300 Subject: [PATCH 1/2] Add WSS support using recently added class SecureServer from React. --- src/Ratchet/Server/IoServer.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Ratchet/Server/IoServer.php b/src/Ratchet/Server/IoServer.php index 921c7b1..4db1c7b 100644 --- a/src/Ratchet/Server/IoServer.php +++ b/src/Ratchet/Server/IoServer.php @@ -5,6 +5,7 @@ use React\EventLoop\LoopInterface; use React\Socket\ServerInterface; use React\EventLoop\Factory as LoopFactory; use React\Socket\Server as Reactor; +use React\Socket\SecureServer as SecureReactor; /** * Creates an open-ended socket to listen on a port for incoming connections. @@ -64,9 +65,12 @@ class IoServer { * @param string $address The address to receive sockets on (0.0.0.0 means receive connections from any) * @return IoServer */ - public static function factory(MessageComponentInterface $component, $port = 80, $address = '0.0.0.0') { + public static function factory(MessageComponentInterface $component, $port = 80, $address = '0.0.0.0', $sslconf = array()) { $loop = LoopFactory::create(); $socket = new Reactor($loop); + if (!empty($sslconf)) { + $socket = new SecureReactor($socket, $loop, $sslconf); + } $socket->listen($port, $address); return new static($component, $socket, $loop); From 13c9fdfb152805e441394786602484d9df48e8d8 Mon Sep 17 00:00:00 2001 From: Eliseu dos Santos Date: Mon, 13 Mar 2017 07:27:13 -0300 Subject: [PATCH 2/2] Changed sslConf parameter validation, according to review on PR --- src/Ratchet/Server/IoServer.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Ratchet/Server/IoServer.php b/src/Ratchet/Server/IoServer.php index 4db1c7b..0d18c8d 100644 --- a/src/Ratchet/Server/IoServer.php +++ b/src/Ratchet/Server/IoServer.php @@ -65,10 +65,10 @@ class IoServer { * @param string $address The address to receive sockets on (0.0.0.0 means receive connections from any) * @return IoServer */ - public static function factory(MessageComponentInterface $component, $port = 80, $address = '0.0.0.0', $sslconf = array()) { + public static function factory(MessageComponentInterface $component, $port = 80, $address = '0.0.0.0', $sslconf = null) { $loop = LoopFactory::create(); $socket = new Reactor($loop); - if (!empty($sslconf)) { + if (is_array($sslconf)) { $socket = new SecureReactor($socket, $loop, $sslconf); } $socket->listen($port, $address);