path(__DIR__ . '/application/')->initialize(); use Workerman\Worker; use PHPSocketIO\SocketIO; use Workerman\Protocols\Http\Request; use Workerman\Connection\TcpConnection; // io global $senderIO; // PHPSocketIO服务 $senderIO = new SocketIO(6530); $senderIO->on('connection', function($socket) { $socket->on('disconnect', function () use($socket) { }); }); // 当$sender_io启动后监听一个http端口,通过这个端口可以给任意uid或者所有uid推送数据 $senderIO->on('workerStart', function(){ // 监听一个http端口 $inner_http_worker = new Worker('http://0.0.0.0:6531'); // 当http客户端发来数据时触发 $inner_http_worker->onMessage = function(TcpConnection $http_connection, Request $request){ global $senderIO; $post = $request->post(); $post = $post ? $post : $request->get(); // 推送处理 if (!empty($post )){ $senderIO->emit('message', $post); return $http_connection->send('ok'); } return $http_connection->send('fail'); }; // 执行监听 $inner_http_worker->listen(); }); Worker::runAll();