ConnectionInterface.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace Workerman\Connection;
  3. use Workerman\Events\Libevent;
  4. use Workerman\Events\Select;
  5. use Workerman\Events\EventInterface;
  6. use Workerman\Worker;
  7. use \Exception;
  8. /**
  9. * connection类的接口
  10. * @author walkor<walkor@workerman.net>
  11. */
  12. abstract class ConnectionInterface
  13. {
  14. /**
  15. * status命令的统计数据
  16. * @var array
  17. */
  18. public static $statistics = array(
  19. 'connection_count'=>0,
  20. 'total_request' => 0,
  21. 'throw_exception' => 0,
  22. 'send_fail' => 0,
  23. );
  24. /**
  25. * 当收到数据时,如果有设置$onMessage回调,则执行
  26. * @var callback
  27. */
  28. public $onMessage = null;
  29. /**
  30. * 当连接关闭时,如果设置了$onClose回调,则执行
  31. * @var callback
  32. */
  33. public $onClose = null;
  34. /**
  35. * 当出现错误时,如果设置了$onError回调,则执行
  36. * @var callback
  37. */
  38. public $onError = null;
  39. /**
  40. * 发送数据给对端
  41. * @param string $send_buffer
  42. * @return void|boolean
  43. */
  44. abstract public function send($send_buffer);
  45. /**
  46. * 获得远端ip
  47. * @return string
  48. */
  49. abstract public function getRemoteIp();
  50. /**
  51. * 获得远端端口
  52. * @return int
  53. */
  54. abstract public function getRemotePort();
  55. /**
  56. * 关闭连接,为了保持接口一致,udp保留了此方法,当是udp时调用此方法无任何作用
  57. * @void
  58. */
  59. abstract public function close($data = null);
  60. }