By a great example from @ madfan41k made the server

<?php require_once __DIR__.'/vendor/autoload.php'; use Workerman\Worker; $context=array ( 'ssl'=>array ( 'local_cert'=>'fullchain.pem', 'local_pk'=>'privkey.pem', 'verify_peer'=>false, ) ); $users=array (); $ws_worker=new Worker("websocket://0.0.0.0:2346", $context); $ws_worker->transport='ssl'; $ws_worker->onWorkerStart=function () use (&$users) { $inner_tcp_worker=new Worker("tcp://127.0.0.1:1234"); $inner_tcp_worker->onMessage=function ($connection, $data) use (&$users) { $data=json_decode($data); if (isset($users[$data->user])) { $webconnection=$users[$data->user]; $webconnection->send($data->message); } }; $inner_tcp_worker->listen(); }; $ws_worker->onConnect=function ($connection) use (&$users) { $connection->onWebSocketConnect=function ($connection) use (&$users) { $users[$_GET['place']]=$connection; }; }; $ws_worker->onClose=function ($connection) use (&$users) { $user=array_search($connection, $users); unset($users[$user]); }; Worker::runAll(); 

Everything works fine, but only in one session, if you open another window from the same user, the old data will be lost. How to make the necessary data flow into all user sessions?

    0