| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace think;
- // 加载基础文件
- require __DIR__ . '/thinkphp/base.php';
- // 应用初始化
- Container::get('app')->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(2120);
- $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:2121');
- // 当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();
|