phpsocks5/Workerman/Protocols/ProtocolInterface.php

53 lines
1.6 KiB
PHP
Raw Normal View History

2015-04-04 21:46:31 +08:00
<?php
2016-09-20 21:27:41 +08:00
/**
* 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
*/
2015-04-04 21:46:31 +08:00
namespace Workerman\Protocols;
2016-09-20 21:27:41 +08:00
use Workerman\Connection\ConnectionInterface;
2015-04-04 21:46:31 +08:00
/**
* Protocol interface
*/
interface ProtocolInterface
{
/**
2016-09-20 21:27:41 +08:00
* Check the integrity of the package.
* Please return the length of package.
* If length is unknow please return 0 that mean wating more data.
* If the package has something wrong please return false the connection will be closed.
*
2015-04-04 21:46:31 +08:00
* @param ConnectionInterface $connection
2016-09-20 21:27:41 +08:00
* @param string $recv_buffer
2015-04-04 21:46:31 +08:00
* @return int|false
*/
public static function input($recv_buffer, ConnectionInterface $connection);
2016-09-20 21:27:41 +08:00
2015-04-04 21:46:31 +08:00
/**
2016-09-20 21:27:41 +08:00
* Decode package and emit onMessage($message) callback, $message is the result that decode returned.
*
2015-04-04 21:46:31 +08:00
* @param ConnectionInterface $connection
2016-09-20 21:27:41 +08:00
* @param string $recv_buffer
2015-04-04 21:46:31 +08:00
* @return mixed
*/
public static function decode($recv_buffer, ConnectionInterface $connection);
2016-09-20 21:27:41 +08:00
2015-04-04 21:46:31 +08:00
/**
2016-09-20 21:27:41 +08:00
* Encode package brefore sending to client.
*
2015-04-04 21:46:31 +08:00
* @param ConnectionInterface $connection
2016-09-20 21:27:41 +08:00
* @param mixed $data
2015-04-04 21:46:31 +08:00
* @return string
*/
public static function encode($data, ConnectionInterface $connection);
}