* @copyright walkor * @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; } }