### Connection

connection表示beyod服务器与客户端的tcp连接封装，是非常重要的概念。

重要属性：

$id: int 连接号，从1开始编号，只读属性，beyod使用id复用机制，即当连接断开后，其id将被后续的新连接使用，不存在id不断增长导致耗尽的问题。

$peer: string 客户端的ip和端口，冒号分隔，只读。

$local: string 同上，服务器的地址和端口，只读。

$listener beyodListener 当前连接所属的Listener对象，只读。

$connect_at float 连接建立的时间戳

$request_at float 客户端最后一次发送数据包的时间戳。

public static $connection: Connection[] 当前所有连接对象（所有Listenner的连接），键名为连接号，值为连接对象。
如果只想列出当前侦听器中的连接，使用以下方式：

    $conns= $connection->listener->connections;
    foreach($conns as $id => $conn) {

    }

方法：

getClientId setClientId($value): 获取/设置客户端标识，比如userid, device id都可以作为客户端标识使用, 一般用于客户端验证之后的状态维持。

bool send(mixed $message, bool $raw=false): 向客户端发送数据，$raw是否发送原始数据（不进行Parser::encode处理）。send发送数据前，会尝试将$message进行Parser::encode处理（除非$raw==true或没有指定Parser）成字节流，再发送给客户端。返回false说明有错误发生（连接已断开、缓存区已满）。send方法调用完毕，并不意味着数据已经到达客户端。

bool close($message=null, $raw=false): 向客户端发送消息后，断开连接。$message==null表示不发送消息而直接断开。 $raw含义同上。

bool pauseRecv(): 暂停接收客户端的消息，在需要流控的场景中很有用。

bool isPaused(): 检测是否已经暂停接收客户端消息。

resumeRecv(): 恢复接收客户端消息。

bool isClosed(): 检测当前连接是否已经断开，在群发消息时，应该作判断处理。

void attr(string $name): 获取当前连接的自定义属性值

void attr(string $name, mixed $value): 设置一个自定义属性值