WebSocket Ratchet сервер с одновременной прослушкой двух IP
Задача: поднять WebSocket сервер, одновременно слущающий и wss (для браузеров) и ws (для скриптов на PHP на том-же сервере).
Почему такой велосипед? Ну просто вот ну никак не удалось подобрать WebSocket клиент на PHP нормально работающий с WSS (SSL).
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
$myClassMessage=new MessageService($UsersApi); $loop = React\EventLoop\Factory::create(); $webSock = new React\Socket\Server('0.0.0.0:35500', $loop); $webSock = new React\Socket\SecureServer($webSock, $loop, [ 'local_cert' => 'епкуеп.crt', // path to your cert 'local_pk' => 'кепуке.key', // path to your server private key 'allow_self_signed' => TRUE, // Allow self signed certs (should be false in production) 'verify_peer' => FALSE ]); $webServer = new Ratchet\Server\IoServer( new Ratchet\Http\HttpServer( new Ratchet\WebSocket\WsServer( $myClassMessage ) ), $webSock, $loop ); $webSock2 = new React\Socket\Server('127.0.0.1:35501', $loop); $webServer = new Ratchet\Server\IoServer( new Ratchet\Http\HttpServer( new Ratchet\WebSocket\WsServer( $myClassMessage ) ), $webSock2, $loop ); $loop->run(); |