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

AsyncTcpConnection連不上tcp的響應(yīng)事件

mazhaozi
use \Workerman\Worker;
use \Workerman\Connection\AsyncTcpConnection;
require_once './Workerman/Autoloader.php';
define('PING_TIMEOUT', 5);

$task = new Worker();
// 進(jìn)程啟動時(shí)異步建立一個(gè)到www.baidu.com連接對象,并發(fā)送數(shù)據(jù)獲取數(shù)據(jù)
$task->onWorkerStart = function($task)
{
    $connection_to_baidu = new AsyncTcpConnection('ws://127.0.0.1:8080');
    $connection_to_baidu->onWorkerStart = function($connection_to_baidu) {
        echo "3333";
    };

    // 當(dāng)連接建立成功時(shí),發(fā)送http請求數(shù)據(jù)
    $connection_to_baidu->onConnect = function($connection_to_baidu)
    {
        $connection_to_baidu->lastTime = time();
        $connection_to_baidu->send("lcjn");//隨便發(fā)點(diǎn)什么吧(觸發(fā))
        echo "connect success\n";
    };
    $connection_to_baidu->onMessage = function($connection_to_baidu, $http_buffer)
    {
        $connection_to_baidu->lastTime = time();
        echo $http_buffer;
    };
    $connection_to_baidu->onClose = function($connection_to_baidu)
    {
        echo "connection closed\n";
    };
    $connection_to_baidu->onError = function($connection_to_baidu, $code, $msg)
    {
        echo "Error code:$code msg:$msg\n";
    };
    $connection_to_baidu->connect();
};

// 運(yùn)行worker
Worker::runAll();

比如現(xiàn)在沒開8080端口
1 AsyncTcpConnection 連不上ws,應(yīng)該在onError里面有響應(yīng)事件啊,為什么什么都沒收到
2 如果端口因?yàn)槟承﹩栴}導(dǎo)致接收不到數(shù)據(jù),應(yīng)該怎么重新鏈接這個(gè)ws

4913 4 0
4個(gè)回答

walkor 打賞

1、tcp連接已經(jīng)連上了,只是你發(fā)數(shù)據(jù)不符合websocket協(xié)議的數(shù)據(jù)格式,服務(wù)端無法識別。onError在tcp連接失敗時(shí)會觸發(fā),而你的情況不符合觸發(fā)條件。
注意:服務(wù)端用什么協(xié)議,客戶端就得按照對應(yīng)的協(xié)議格式去發(fā)送數(shù)據(jù),不然二者無法通訊。就像你和老外講中文,老外聽不懂,老外只能接收英文一樣道理
如果你裸tcp傳輸,服務(wù)端請使用tcp,不要用websocket?;蛘吣阌脀s協(xié)議去連websocket服務(wù),new AsyncTcpConnection('ws://xxxxx:xx');這樣

2、客戶端重新new WebSocket去重連

  • mazhaozi 2016-07-15

    1 服務(wù)端是websocket ,當(dāng)服務(wù)端沒有啟動,8080端口不通,啟動這個(gè)程序(AsyncTcpConnection),這時(shí)候根本連不上ws吧,這時(shí)候會觸發(fā)哪個(gè)事件onError

  • walkor 2016-07-15

  • mazhaozi 2016-07-15

    ----------------------- WORKERMAN -----------------------------
    Workerman version:3.3.2 PHP version:5.3.28
    ------------------------ WORKERS -------------------------------
    worker listen processes status
    none none 1 [OK]

    Press Ctrl-C to quit. Start success.

    啟動之后一直是這個(gè)狀態(tài) 什么也沒輸出啊,好像沒走onError

  • walkor 2016-07-15

    你確認(rèn)你的8080端口沒監(jiān)聽么?你可以telnet你的8080端口試下

  • mazhaozi 2016-07-15

    @1:我用的是windows版 下面是我截圖 老大

  • mazhaozi 2016-07-15

    @1:2客戶端重新new WebSocket去重連 這個(gè)代碼怎么去寫 能提示下么

  • walkor 2016-07-15

    workerman-chat里面客戶端有重連的邏輯,也就是在onClose的時(shí)候重新new WebSocket

mazhaozi

[attach]346[/attach]
確實(shí)不通
也沒有執(zhí)行onError

  • 暫無評論
walkor 打賞

好的,我看下

  • 暫無評論
walkor 打賞

已經(jīng)修復(fù),請更新windows版本workerman。
linux版本沒問題,不受影響。

  • mazhaozi 2016-07-16

    好的

  • kute1654 2017-02-27

    你好,我是這個(gè)月下的windows版本的workerman,為什么還出現(xiàn)上面的問題

  • weitch 2017-02-27

    @1772:我也是啊,發(fā)現(xiàn)有這個(gè)問題了,我是直接下zip的,難道要下git版的嗎

  • walkor 2017-02-28

    3.3.5 - 3.3.9版本不小心把這個(gè)問題還原了,重新下載一份就好了,現(xiàn)在已經(jīng)修復(fù),修復(fù)后的版本名3.3.90

  • kute1654 2017-02-28

    @1:下載新的版本就可以了,辛苦啦,老大。

年代過于久遠(yuǎn),無法發(fā)表回答
??