ホームページ  >  記事  >  バックエンド開発  >  TSF: Tencent が発売した PHP コルーチン ソリューション

TSF: Tencent が発売した PHP コルーチン ソリューション

PHP中文网
PHP中文网オリジナル
2018-05-17 11:01:422792ブラウズ


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

Tencent Server Framework

概要

Tencent Server Framework は、Tencent のエンジニアによって開発された、高速サーバー展開のためのコルーチンと Swoole ベースのサーバー フレームワークです。

PHPベース。 C++ と比較して、このフレームワークは開発とプログラミングがより効率的です。
  • Swoole 拡張機能に基づいています。強力な非同期 IO、タイマー、その他のインフラストラクチャ容量をこのフレームワークで使用できます。
  • PHP コルーチンをサポートします。コルーチン スケジュール システムを使用して同期プログラミングが可能であり、非同期方法で開発されたサーバーと同様のサーバー機能を実現できます。
  • サーバー モニターをサポートし、ルールを追加するためのインターフェイスを提供します
  • 要件

php5.5+
  • Swoole1.7.18+
  • linux,OS X
  • インストール

PHPインストール
  • Swoole拡張機能インストール
  • はじめに

Tencentサーバーフレームワークはサーバーを迅速に起動するのに役立ちます。いくつかの設定を行うだけです
  • サーバー構成
  • 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'
サーバーを起動する方法

cd /root/tsf/bin/ php swoole testHttpServ start

サポートコマンド: start、stop、reload、restart、status、シャットダウン
  • TCP/UDP/HTTPクライアントの使用方法

さまざまなネットワークプロトコルをサポートしています: 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); 
       }

    Muticallの使用方法

それに加えて、Muticallもサポートしています:
  • Muticallを使用してTCP、UDPパケットを同時に送信できます
  • すべてのリクエストが戻ってきたら、割り込みに戻ります
  •   $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 までご連絡ください。