金华

一、创建http服务器

  1.   <?php
  2.   //创建http对象
  3.   $httpServer = new swoole_http_server('0.0.0.0', 80);
  4.    
  5.   //监听端口请求
  6.   $httpServer->on('request', function($request, $response) {
  7.   //请求
  8.   var_dump($request);
  9.   //分隔符
  10.   echo "------------------------\r\n";
  11.   //响应
  12.   var_dump($response);
  13.   //响应内容
  14.   $response->end('help');
  15.   });
  16.    
  17.   //启动服务器
  18.   $httpServer->start();

二、创建websocket服务

  1.   <?php
  2.   //创建websocket服务
  3.   $server = new swoole_websocket_server('0.0.0.0', 8003);
  4.    
  5.   //握手成功,触发回调函数
  6.   $server->on('open', function(swoole_websocket_server $server, $request) {
  7.   echo "server: handshark success with fd{$request->fd}\r\n";
  8.   });
  9.    
  10.   //收到消息,触发回调函数
  11.   $server->on('message', function(swoole_websocket_server $server, $frame) {
  12.   echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\r\n";
  13.   $server->push($frame->fd, 'i accept your message');
  14.   });
  15.    
  16.   //关闭链接时,触发的函数
  17.   $server->on('close', function($ser, $fd) {
  18.   echo "client {$fd} closed\r\n";
  19.   });
  20.    
  21.   //启动websocket服务器
  22.   $server->start();

三、swoole操作进程 

  1.   <?php
  2.   //设置主进程名称
  3.   swoole_set_process_name("swoole_master_process");
  4.    
  5.   $worker = new swoole_process(function() {
  6.   //设置子进程名称
  7.   swoole_set_process_name("swoole_son_process");
  8.   sleep(10);
  9.   });
  10.    
  11.   //运行子进程
  12.   $worker->start();
  13.   //因为子进程需要等待10s,所以父进程比子进程先执行完,因此父进程要等子进程执行完,防止出现孤儿进程
  14.   swoole_process::wait();

四、毫秒级延时器

  1.   <?php
  2.   swoole_timer_after(3000, function() {
  3.   echo "123\r\n";
  4.   });
  5.    
  6.   echo "456\r\n";

五、毫秒级定时器

  1.   <?php
  2.   swoole_timer_tick(3000, function() {
  3.   echo "当前时间为: " . date('Y-m-d H:i:s') . "\r\n";
  4.   });

六、异步操作文件

  1.   <?php
  2.   echo "123\r\n";
  3.    
  4.   swoole_async_readfile('./test.txt', function($filename, $content) {
  5.   echo "{$filename}: {$content}";
  6.   });
  7.    
  8.  
上一篇:协程(Coroutine)(一)


下一篇:Laravel + Swoole 打造IM简易聊天室