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  #官網資料 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM