连接的接口是抽象的 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 #官网资料