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

底層Http類無法解析請求數(shù)據(jù)

多多

為什么創(chuàng)建一個http服務,向游覽器發(fā)送數(shù)據(jù),打包tcp服務為http過程中,為什么我在Http類,打印任何方法都不能斷點。這里和緩沖有什么關系嗎?

3379 5 0
5個回答

phpcreeper

肯定可以var_dump之類的打印,但是絕對不要 die 或 exit 斷點調(diào)試.

  • 多多 2018-12-10

    沒有die,但是就是打印不出來,換了ws也不行,

  • phpcreeper 2018-12-10

    加了調(diào)試代碼后,重啟服務了嗎?

  • 多多 2018-12-10

    @614:重啟了呢

多多

[attach]1482[/attach]

[attach]1483[/attach]

[attach]1484[/attach]

[attach]1485[/attach]
?

  • phpcreeper 2018-12-10

    看不到你完整代碼,你第一張圖那段代碼貌似是裸tcp在通信吧,如果是的話那肯定打印不出來,因為encode那個方法是websocket應用層協(xié)議的封裝實現(xiàn)。

  • 多多 2018-12-10

    大佬啥叫裸tcp協(xié)議,我服務端是這種$tcp_worker = new Worker("websocket://192.168.0.111:2348"); 前臺是 ws = new WebSocket("ws://192.168.0.111:2348");

  • 多多 2018-12-10

    @614:郁悶了,怎么試都不行

  • 多多 2018-12-10

    @614:開的是虛擬機

  • phpcreeper 2018-12-10

    1、你用的 new Worker("websocket://192.168.0.111:2348"); 那就是啟動是 websocket 服務,你貼這句代碼之前,我是根據(jù)你變量名猜測的。
    2、至于啥是裸tcp協(xié)議啟動,就是指直接這樣啟動 new Worker("tcp://192.168.0.111:2348");

  • phpcreeper 2018-12-10

    1、絕對可以打印的,我經(jīng)常這樣debug呢,也沒見你說的問題啊,肯定是有哪里細節(jié)沒注意到。
    2、對于websocket這樣的應用層協(xié)議,調(diào)用$connection->send($data, $raw = false)方法, 在 $raw == false的情況下,統(tǒng)統(tǒng)都是要路由到對應應用層協(xié)議的 encode()方法的
    3、實在不行,你逐步的老辦法調(diào)試打印。

  • 多多 2018-12-10

    @614:大佬是不是自動加載問題,我還是不行,方法都進不去

  • 多多 2018-12-10

    @614:真的好奇怪

多多

[attach]1492[/attach]

[attach]1491[/attach]

[attach]1493[/attach]
?

  • phpcreeper 2018-12-10

    還不好使嗎?方便的話,你保留調(diào)試代碼然后整體打個包,我運行下看~~

  • 多多 2018-12-10

    @614:我傳了

多多

11

  • 暫無評論
phpcreeper
 37     public static function input($recv_buffer, TcpConnection $connection)
 38     {
 39         var_dump(4234);die;                                                                                                                     
 40         if (!strpos($recv_buffer, "\r\n\r\n")) {
 41             // Judge whether the package length exceeds the limit.
 42             if (strlen($recv_buffer) >= $connection->maxPackageSize) {
 43                 $connection->close();
 44                 return 0;
 45             }
 46             return 0;
 47         }

1、一開始就給你說了,禁止在代碼里die 或者? exit , 你說你第39行代碼那是啥。
2、去掉 die 之后,任意var_dump 一切正常。

  • 多多 2018-12-10

    額,可我去掉encode方法里面還是沒有數(shù)據(jù)?。?/p>

  • 多多 2018-12-10

    public static function encode($content, TcpConnection $connection)
    {

        var_dump(2222222).PHP_EOL;
        // Default http-code.
  • phpcreeper 2018-12-10

    你咋玩的??? 我拿你的代碼跑的,去掉那個die后,一點問題都沒有。

  • 多多 2018-12-10

    @614:我想用命令行打出上面那個字符,用curl獲取游覽器請求都進步到encode方法里面

  • phpcreeper 2018-12-10

    提個建議:
    1、和 curl 沒有什么關系,你啟用了http服務,瀏覽器或者curl 作為不同的客戶端,都能發(fā)送http請求,測試一樣樣。
    2、我最后能想到的就是你本地是不是開啟了 opcache之類的加速模塊,如果沒有那基本可以斷定就是你本地環(huán)境哪里還是有問題的,你給的代碼我也幫你跑過了,沒有什么問題。
    3、這個也真不是什么技術難題,你不用太過于糾結這個地方,建議你把同樣的代碼部署到另外一臺機器泡一下,這也能很好的驗證是不是部署環(huán)境的問題。
    4、無論怎樣,我都可以非常肯定說:workerman內(nèi)核里的任何一個腳本代碼都是可以var_dump調(diào)試的,但是堅決禁止 die 或者 exit, 這是多進程編程模型的要求,不這么干進程就會退出,就會出現(xiàn)意想不到的結果。

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