首頁  >  文章  >  後端開發  >  TSF:腾讯推出的 PHP 协程方案

TSF:腾讯推出的 PHP 协程方案

PHP中文网
PHP中文网原創
2018-05-17 11:01:422853瀏覽


TSF:腾讯推出的 PHP 协程方案

Tencent Server Framework

Overview

Tencent Server Framework is a coroutine and Swoole based server framework for fast server deployment which developed by Tencent engineers.

Features

  • PHP Based. Compared with C++, the framework is more efficient in developing and programing.

  • based on Swoole extension. powerful async IO, timers and other infrastructure capacity can be used in this framework.

  • support PHP coroutine. Synchronous programing is possible using the coroutine schedule system, and can lead to the similar server capability with that of server deveoped in an asynchronous way.

  • support server monitor and provide interface to add more rules

Requirements

  • php5.5+

  • Swoole1.7.18+

  • linux,OS X

Installation

  • PHP install

  • Swoole extension install

Introduction

  • Tencent Server Framework can help you to start your server quickly,you just need to set a few settings

Server config

vim server.ini[server];
server type:tcp,udp,httptype = http; 
portlisten[] = 12312; 
entrance fileroot = '/data/web_deployment/serv/test/index.php';
php start pathphp = '/usr/local/php/bin/php'[setting]; 
worker process numworker_num = 16; 
task process numtask_worker_num = 0; 
dispatch modedispatch_mode = 2; 
daemonizedaemonize = 1; 
system loglog_file = '/data/log/test.log'

How to start you server

cd /root/tsf/bin/ php swoole testHttpServ start
  • Support Cmds: start,stop,reload,restart,status,shutdown

How to use TCP/UDP/HTTP Client

  • we support different network protocols: TCP,UDP,HTTP

  $tcpReturn=(yield $this->tcpTest());  
  $udpReturn=(yield $this->udpTest());  
  $httpReturn=(yield $this->httpTest());  
  public function tcpTest(){    
  $ip = '127.0.0.1';    
  $port = '9905';    
  $data = 'test';    
  $timeout = 0.5; //second    
  yield new Swoole\Client\TCP($ip, $port, $data, $timeout);  
  }  
  public function udpTest(){    
  $ip = '127.0.0.1';    
  $port = '9905';    
  $data = 'test';    
  $timeout = 0.5; //second    
  yield new Swoole\Client\UDP($ip, $port, $data, $timeout);  
  }  
  public function httpTest(){    
  $url='http://www.qq.com';    
  $httpRequest= new Swoole\Client\HTTP($url);    
  $data='testdata';    
  $header = array(      
  'Content-Length' => 12345,    
  );    
  yield 
  $httpRequest->get($url); 
  //yield $httpRequest->post($path, $data, $header); 
   }

How to use Muticall

  • Beside that,we also support Muticall:

  • you can use Muticall to send TCP,UDP packets at the sametime

  • when all the requests come back,return to interrupt

  $res = (yield $this->muticallTest());  
  public function muticallTest(){   
   $calls=new Swoole\Client\Multi();    
   $firstReq=new Swoole\Client\TCP($ip, $port, $data, $timeout);    
   $secondReq=new Swoole\Client\UDP($ip, $port, $data, $timeout);    
   $calls ->request($firstReq,'first');             //first request    
   $calls ->request($secondReq,'second');             //second request    yield $calls;  
   }  var_dump($res)

以上就是TSF:腾讯推出的 PHP 协程方案的内容,更多相关内容请关注PHP中文网(www.php.cn)!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn