tsf
1.0.0
The project is currently in archive status. Thank you for your attention to Tencent's open source projects! You can continue to fork and update iterations, thank you for your understanding and support; if you have other questions, it is recommended to contact us by sending an email: [email protected]
Tencent Server Framework is a coroutine and Swoole based server framework for fast server deployment which developed by Tencent engineers.
vim server.ini
[server]
;server type:tcp,udp,http
type = http
; port
listen[] = 12312
; entrance file
root = ' /data/web_deployment/serv/test/index.php '
;php start path
php = ' /usr/local/php/bin/php '
[setting]
; worker process num
worker_num = 16
; task process num
task_worker_num = 0
; dispatch mode
dispatch_mode = 2
; daemonize
daemonize = 1
; system log
log_file = ' /data/log/test.log '
cd /root/tsf/bin/
php swoole testHttpServ start
$ 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 );
}
$ 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 );
$ thirdReq = new Swoole Client HTTP ( " http://www.qq.com " );
$ calls -> request ( $ firstReq , ' first ' ); // first request
$ calls -> request ( $ secondReq , ' second ' ); // second request
$ calls -> request ( $ thirdReq , ' third ' ); // third request
yield $ calls ;
}
var_dump ( $ res )
$ sql = new Swoole Client MYSQL ( array ( ' host ' => ' 127.0.0.1 ' , ' port ' => 3345 , ' user ' => ' root ' , ' password ' => ' root ' , ' database ' => ' test ' , ' charset ' => ' utf-8 ' ,));
$ ret = ( yield $ sql -> query ( ' show tables ' ));
var_dump ( $ ret );
$ ret = ( yield $ sql -> query ( ' desc test ' ));
var_dump ( $ ret );
URL METHOD CONTROLLER ACTION
http: // 127.0 . 0.1 : 80 / Test ? h = 1 ANY == > TestController / ActionIndex
http: // 127.0 . 0.1 : 80 / Test / send ? h = 1 ANY == > TestController / ActionSend
Restful
http: // 127.0 . 0.1 : 80 / rest GET == > TestController / ActionList
http: // 127.0 . 0.1 : 80 / rest / Test / 22 GET == > TestController / ActionView
Get[ ' id ' ]= 22
http: // 127.0 . 0.1 : 80 / rest / Test POST == > TestController / ActionCreate
http: // 127.0 . 0.1 : 80 / rest / Test / 22 PUT == > TestController / ActionUpdate
Get[ ' id ' ]= 22
http: // 127.0 . 0.1 : 80 / rest / Test / 22 DELETE == > TestController / ActionDelete
Get[ ' id ' ]= 22
http: // 127.0 . 0.1 : 80 / rest / Test / send / 1 / li GET == > TestController / ActionSend
Get[ ' cid ' ]= 1 Get[ ' name ' ]=li
Your contribution to TSF development is very welcome!
You may contribute in the following ways: