連接配接的接口是抽象的 ConnectionInterface.php
每個用戶端連接配接對應一個Connection對象,可以設定對象的onMessage、onClose等回調,同是提供了向客戶資料send接口與關閉連接配接close接口,以及其它一些必要的接口
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9sGRNFTUq5EeJRVT3V1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwUjNxEjMzIjMyAzMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
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 #官網資料