国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

為什么我post過(guò)來(lái)的數(shù)據(jù)想轉(zhuǎn)發(fā)給過(guò)去,但是返回值為NUlLL,我看了下表示放入待發(fā)送隊(duì)列,等待異步發(fā)送,怎么能立即發(fā)送出去呢

ssxzcb
<?php
use \Workerman\Worker;
use \Workerman\Connection\AsyncTcpConnection;
require_once './Workerman/Autoloader.php';

//遠(yuǎn)程CCS地址
$REAL_CCS_ADDRESS = 'tcp://xx.xx.xx.xx:80';

// 監(jiān)聽(tīng)本地4237端口
$proxy = new Worker('http://0.0.0.0:4237');

$proxy->onConnect = function($connection)
{
    global $REAL_CCS_ADDRESS;
    // 異步建立一個(gè)到實(shí)際ccs服務(wù)器的連接
    $connection_to_css = new AsyncTcpConnection($REAL_CCS_ADDRESS);
    // ccs連接發(fā)來(lái)數(shù)據(jù)時(shí),轉(zhuǎn)發(fā)給對(duì)應(yīng)客戶端的連接
    $connection_to_css->onMessage = function($connection_to_css, $buffer)use($connection)
    {
        var_dump($buffer);
        $connection->send($buffer);
    };
    // ccs連接關(guān)閉時(shí),關(guān)閉對(duì)應(yīng)的代理到客戶端的連接
    $connection_to_css->onClose = function($connection_to_css)use($connection)
    {
        $connection->close();
    };
    // ccs連接上發(fā)生錯(cuò)誤時(shí),關(guān)閉對(duì)應(yīng)的代理到客戶端的連接
    $connection_to_css->onError = function($connection_to_css)use($connection)
    {
        $connection->close();
    };

    // 執(zhí)行異步連接
    $connection_to_css->connect();

    // 客戶端發(fā)來(lái)數(shù)據(jù)時(shí),轉(zhuǎn)發(fā)給對(duì)應(yīng)的ccs連接
    $connection->onMessage = function($connection, $buffer)use($connection_to_css)
    {
        $buffer = $_POST;
        var_dump($connection_to_css->send($buffer));
    };
    // 客戶端連接斷開(kāi)時(shí),斷開(kāi)對(duì)應(yīng)的ccs連接
    $connection->onClose = function($connection)use($connection_to_css)
    {
        $connection_to_css->close();
    };
    // 客戶端連接發(fā)生錯(cuò)誤時(shí),斷開(kāi)對(duì)應(yīng)的ccs連接
    $connection->onError = function($connection)use($connection_to_css)
    {
        $connection_to_css->close();
    };

};
// 運(yùn)行worker
Worker::runAll();
3035 1 0
1個(gè)回答

walkor 打賞

workerman提供的網(wǎng)絡(luò)IO接口都是異步的。
返回null 說(shuō)明發(fā)生了下面兩種情況其中的一種
1、遠(yuǎn)程鏈接還沒(méi)有連上就開(kāi)始向遠(yuǎn)程鏈接發(fā)送數(shù)據(jù)。
2、由于發(fā)送的數(shù)據(jù)大于socket緩沖區(qū)的大小或者socket緩沖區(qū)已滿導(dǎo)致有部分?jǐn)?shù)據(jù)未發(fā)送,這時(shí)未發(fā)送的數(shù)據(jù)放入待發(fā)送隊(duì)列,等待socket緩沖區(qū)有空余位置時(shí)再將數(shù)據(jù)放入進(jìn)去發(fā)送。

如果想得到發(fā)送的確切結(jié)果,那么只能阻塞等待,這樣會(huì)導(dǎo)致只要有一個(gè)socket慢(鏈接慢或者接收數(shù)據(jù)慢)就會(huì)導(dǎo)致整個(gè)服務(wù)卡死。

另外也不是你想發(fā)送就能立即發(fā)送的,涉及到網(wǎng)絡(luò)環(huán)境以及者客戶端自身等很多因素。例如網(wǎng)絡(luò)暫時(shí)不可用、客戶端bug無(wú)法接受數(shù)據(jù)導(dǎo)致對(duì)應(yīng)socket緩沖區(qū)一直是滿的等等都。

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??