為PHP添加swoole異步並行擴展


 

1. 確認安裝環境

  • 僅支持Linux操作系統,核心代碼兼容FreeBSD,需要調整某些編譯的參數和細節才能通過
  • Linux內核版本2.3.32以上
  • PHP5.3.10以上版本
  • gcc4.4以上版本。核心代碼兼容clang,需要關閉CPU親和設置特性
  • cmake2.4+,編譯為libswoole.so作為C/C++庫時,需要使用cmake

 

2. 安裝與配置

2. 1安裝swoole:可pecl直接在線安裝,或下載releases版本的swoole編譯安裝

 2.11 pecl安裝swoole擴展

pecl不可用的請確認php安裝目錄的bin目錄已加入系統變量

# pecl install swoole  

 2.12編譯安裝swoole擴展

從此處下載:http://pecl.php.net/package/swoole

# cd swoole
# phpize
# ./configure
# make && make install

2.2配置php.ini

phpinfo()確認Configuration File (php.ini) Path

添加:

extension=swoole.so

重啟Apache查看php擴展庫

# service httpd restart
# php -m

確認swoole已添加

官方文檔:http://wiki.swoole.com/wiki/index/prid-1

 

3.測試

server.php:

<?php
	$serv = new swoole_server("0.0.0.0", 9501);
	$serv->on('connect', function ($serv, $fd){
		echo "Client:Connect.\n";
	});
	$serv->on('receive', function ($serv, $fd, $from_id, $data) {
		$serv->send($fd, 'Swoole: '.$data);
	});
	$serv->on('close', function ($serv, $fd) {
		echo "Client: Close.\n";
	});
	$serv->start();
?>

client.php:

<?php
	$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
	$client->on("connect", function($cli) {
		$cli->send("hello world\n");
	});
	$client->on("receive", function($cli, $data){
		echo "Receive: $data\n";
	});
	$client->on("error", function($cli){
		echo "connect fail\n";
	});
	$client->on("close", function($cli){
		echo "close\n";
	});
	$client->connect('127.0.0.1', 9501, 0.5);
?>

Test:

 測試Server:

   

    測試Client:

   

 

 

End.

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM