diff --git a/README.md b/README.md index a2ba9ac..522dd5c 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,61 @@ $make && make install ### Example ```php 1,1=>2,2=>3); +$data = array(0 => 1, 1 => 2, 2 => 3); $msg = msgpack_pack($data); $data = msgpack_unpack($msg); -?> ``` + +### Example Advanced +```php + 1, 1 => 2, 2 => 3); +$packer = new \MessagePack(false); //same as $packer->setOption(\MessagePack::OPT_PHPONLY, false); +$packed = $packer->pack($data); + +$unpacker = new \MessagePackUnpacker(false); //same as $unpacker->setOption(\MessagePack::OPT_PHPONLY, false); +$unpacker->feed($packed); +$unpacker->execute(); +$unpacked = $unpacker->data(); +$unpacker->reset(); + +``` + +### Example Advanced Streaming +```php + 1, 1 => 2, 2 => 3); +$data2 = array("a" => 1, "b" => 2, "c" => 3); + +$packer = new \MessagePack(false); +$packed1 = $packer->pack($data1); +$packed2 = $packer->pack($data2); + +$unpacker = new \MessagePackUnpacker(false); +$buffer = ""; +$nread = 0; + +//Simulating streaming data :) +$buffer .= $packed1; +$buffer .= $packed2; + +while(true) { + if($unpacker->execute($buffer, $nread)) { + $msg = $unpacker->data(); + + var_dump($msg); + + $unpacker->reset(); + $buffer = substr($buffer, $nread); + $nread = 0; + if(!empty($buffer)) { + continue; + } + } + break; +} + +``` + # Resources * [msgpack](http://msgpack.org/)