workerman介绍TcpConnection类

 

连接的接口是抽象的  ConnectionInterface.php 

 

每个客户端连接对应一个Connection对象,可以设置对象的onMessage、onClose等回调,同是提供了向客户数据send接口与关闭连接close接口,以及其它一些必要的接口 

 

 

id  当前连接客户端编号 ,自增的整数 

protocol 设置当前连接的协议类 

worker 此属性为只读属性,即当前connection对象所属的worker实例 

  调用worker实例 。就可以获取这个$connection->worker的所有连接connection 

  客户端所有的连接都foreach循环都给你发送一遍  

  $worker->onMessage = function($connection,$data) { 

    foreach($connection->woreker->connections as $conn) { 

      $conn->send('lampol');

    }

  }

 

 

 

 

打印  var_dump(($connection->woreker)

 

 

 

 

 

maxSendBufferSize  

  每个连接都有一个单独的应用层发送缓冲区,如果客户端接收速度小于服务端发送速度,数据会在应用层缓冲区暂存等待发送。

  

  此属性用来设置当前连接的应用层发送缓冲区大小。不设置默认为Connection::defaultMaxSendBufferSize(1MB)。

  此属性影响onBufferFull回调。 

 $worker->onConnect = function($connection)
 {  
// 在里面设置是当前连接 // 设置当前连接的应用层发送缓冲区大小为102400字节 $connection->maxSendBufferSize = 102400; };
 

 

defaultMaxSendBufferSize

  此属性为全局静态属性,用来设置所有连接的默认应用层发送缓冲区大小。不设置默认为1MB。 Connection::$defaultMaxSendBufferSize可以动态设置,设置后只对之后产生的新连接有效

  此属性影响onBufferFull回调。

 

 

 回调属性

onMessage 

  作用与Worker::$onMessage回调相同,区别是只针对当前连接有效,也就是可以针对某个连接的设置onMessage回调。

use Workerman\Worker;
require_once __DIR__ . '/Workerman/Autoloader.php';

$worker = new Worker('websocket://0.0.0.0:8484');

// 直接设置所有连接的onMessage回调
$worker->onMessage = function($connection, $data)
{
    var_dump($data);
    $connection->send('receive success');
};

// 当有客户端连接事件时
$worker->onConnect = function($connection)
{
    // 设置连接的onMessage回调
    $connection->onMessage = function($connection, $data)
    {
        var_dump($data);
        $connection->send('receive success');
    };
};
// 运行worker
Worker::runAll();

 

接口 

getRemoteIp  获得该连接的客户端ip

getRemotePort  获得该连接的客户端端口

pauseRecv 使当前连接停止接收数据。该连接的onMessage回调将不会被触发。此方法对于上传流量控制非常有用

  

 

resumeRecv 

  使当前连接继续接收数据。此方法与Connection::pauseRecv配合使用,对于上传流量控制非常有用

  

 

http://doc.workerman.net/tcp-connection/resume-recv.html  #官网资料 

posted @ 2019-05-16 14:21  来阿里啊呀  阅读(1769)  评论(0)    收藏  举报