فهرست منبع

add Frame protocol

walkor 9 سال پیش
والد
کامیت
c74f937aab
2فایلهای تغییر یافته به همراه57 افزوده شده و 1 حذف شده
  1. 56 0
      Protocols/Frame.php
  2. 1 1
      Worker.php

+ 56 - 0
Protocols/Frame.php

@@ -0,0 +1,56 @@
+<?php 
+/**
+ * This file is part of workerman.
+ *
+ * Licensed under The MIT License
+ * For full copyright and license information, please see the MIT-LICENSE.txt
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @author walkor<walkor@workerman.net>
+ * @copyright walkor<walkor@workerman.net>
+ * @link http://www.workerman.net/
+ * @license http://www.opensource.org/licenses/mit-license.php MIT License
+ */
+namespace Workerman\Protocols;
+use \Workerman\Connection\TcpConnection;
+
+/**
+ * Frame Protocol.
+ */
+class Frame
+{
+    /**
+     * Check the integrity of the package.
+     * @param string $buffer
+     */
+    public static function input($buffer ,TcpConnection $connection)
+    {
+        if(strlen($buffer)<4)
+        {
+            return 0;
+        }
+        $unpack_data = unpack('Ntotal_length', $buffer);
+        return $unpack_data['total_length'];
+    }
+    
+    /**
+     * Encode.
+     * @param string $buffer
+     * @return string
+     */
+    public static function decode($buffer)
+    {
+        return substr($buffer, 4);
+    }
+    
+    /**
+     * Decode.
+     * @param string $buffer
+     * @return string
+     */
+    public static function encode($buffer)
+    {
+        $total_length = 4 + strlen($buffer);
+        return pack('N',$total_length) . $buffer;
+    }
+}

+ 1 - 1
Worker.php

@@ -32,7 +32,7 @@ class Worker
      * Version.
      * @var string
      */
-    const VERSION = '3.2.9';
+    const VERSION = '3.3.0';
     
     /**
      * Status starting.