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(); |