久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      swoole的onreceive不觸發(fā)

      swoole的onreceive不觸發(fā)

      onReceive

      接收到數(shù)據(jù)時回調(diào)此函數(shù),發(fā)生在worker進(jìn)程中。函數(shù)原型: (推薦學(xué)習(xí): swoole視頻教程)

      function onReceive(swoole_server $server, int $fd, int $reactor_id, string $data);

      $server,Server對象

      $fd,TCP客戶端連接的唯一標(biāo)識符

      $reactor_id,TCP連接所在的Reactor線程ID

      $data,收到的數(shù)據(jù)內(nèi)容,可能是文本或者二進(jìn)制內(nèi)容

      關(guān)于$fd和$reactor_id 詳細(xì)的解釋

      未開啟自動協(xié)議選項,onReceive單次收到的數(shù)據(jù)最大為64K

      開啟了自動協(xié)議處理選項,onReceive將收到完整的數(shù)據(jù)包,最大不超過 package_max_length

      支持二進(jìn)制格式,$data可能是二進(jìn)制數(shù)據(jù)

      使用底層提供的open_eof_check/open_length_check/open_http_protocol,可以保證數(shù)據(jù)包的完整性

      不使用底層的協(xié)議處理,在onReceive后PHP代碼中自行對數(shù)據(jù)分析,合并/拆分?jǐn)?shù)據(jù)包。

      例如:代碼中可以增加一個 $buffer = array(),使用$fd作為key,來保存上下文數(shù)據(jù)。 每次收到數(shù)據(jù)進(jìn)行字符串拼接,$buffer[$fd] .= $data,然后在判斷$buffer[$fd]字符串是否為一個完整的數(shù)據(jù)包。

      默認(rèn)情況下,同一個fd會被分配到同一個Worker中,所以數(shù)據(jù)可以拼接起來。使用dispatch_mode = 3時。

      請求數(shù)據(jù)是搶占式的,同一個fd發(fā)來的數(shù)據(jù)可能會被分到不同的進(jìn)程。所以無法使用上述的數(shù)據(jù)包拼接方法

      關(guān)于粘包問題如SMTP協(xié)議,客戶端可能會同時發(fā)出2條指令。在Server中可能一次性收到,這時應(yīng)用層需要自行拆包。SMTP是通過rn來分包的,所以業(yè)務(wù)代碼中需要 explode("rn", $data)來拆分?jǐn)?shù)據(jù)包。

      如果是請求應(yīng)答式的服務(wù),無需考慮拆分?jǐn)?shù)據(jù)的問題。原因是客戶端在發(fā)起一次請求后,必須等到服務(wù)器端返回當(dāng)前請求的響應(yīng)數(shù)據(jù),才會發(fā)起第二次請求,不會同時發(fā)送2個請求

      贊(0)
      分享到: 更多 (0)
      ?
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號