用於php二進位操作和socket二進位通訊的phpbuffer v0.1開源發布

來源:互聯網
上載者:User

                              [文章作者:孫立 連結:http://www.cnblogs.com/sunli/ 更新時間:2010-12-17]    

項目來源

        php語言是當前比較流行的一種web開發語言,它能夠實現快速開發,方便代碼發布和部署,效能也還不錯,但是隨著web的快速發展,一個網站往往是多種語言結合的模式。為了提高效能,各種語言之間的通訊往往會採用二進位,PHP雖然支援二進位,但是非常不方便,不能像java那種可以writeInt(int),writeLong(long)那樣方便的進行二進位操作,所以萌發了封裝一套php二進位操作類庫的想法。

PHPBuffer介紹

       PHPBuffer是一個可以用於二進位序列化和還原序列化PHP資料和對象,並能跟其他語言進行相容通訊的PHP封裝類庫。比如你可以用PHP讀取其他語言寫的一個二進位檔案,也可以用PHP的socket協議跟其他語言進行方便的二進位通訊,比如ttserver的二進位協議。PHPBuffer項目地址:http://code.google.com/p/phpbuffer/

       下面示範一下例子:

        php對象的二進位序列化,可以把對象或者資料打包成二進位格式,他比json,內建的序列化佔用的空間更小,而且效能更高,   

require 'class/BigEndianBytesBuffer.php';
class request {
public $width = 5;
public $height = 6;
private $buffer;
public function __construct() {

$this->buffer = new BigEndianBytesBuffer ( );
}
public function tobytes() {
$this->buffer->clear ();
$this->buffer->writeInt ( $this->width );//寫入int
$this->buffer->writeInt ( $this->height ); //寫入int
return $this->buffer;
}
}

     socket的二進位通訊,可以方便的與java等第三方語言通訊,通過封裝,可以快速開發,不易出錯。

 

 $this->fd = new BigEndianSocketBuffer ( $host, $port );
$this->fd->writeChar ( 0xC8 );//寫一個4bitchar
$this->fd->writeChar ( 0xa0 );//寫一個4bit char
echo "\r\nstarted at:$rts\r\n";
$this->fd->writeLong ( $rts );//寫一個64bit長整型
$this->fd->writeInt ( $sid );//寫一個32bit整形
$this->fd->readInt (); //讀取一個32bit 整形

 

 

    從上面的代碼,也許你看出來,開發二進位的讀寫程式非常的方便。

ttserver複製協議實現

    在前面的部落格中我提過ttserver的複製協議,同樣,我們通過PHPBuffer可以方便的實現ttserver複製協議,可以方便的即時的把ttserver的資料複製到mysql,搜尋引擎,其他nosql資料庫,還可以用來更新cache的到期,也可以用來做高速隊列。(在idata資料庫大會上我示範過)。代碼地址:http://phpbuffer.googlecode.com/svn/trunk/ttserver.php

    前兩天看到有朋友正在做類似的工作,見:http://www.cnblogs.com/sunyongyue/archive/2010/12/14/repl_from_tt_to_mysql.html ,我相信,這些功能的實現,對很多朋友是有意義的。

還未完成的功能

    目前只是提供了BigEnddian模式的封裝,還沒有實現LittleEndian模式的封裝。如果你有興趣,你可以加入進來一起完善。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.