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

stream_socket_client創(chuàng)建鏈接的問題(可能和異步有關(guān))

zhanchen

截圖
上面是代碼

出現(xiàn)問題的場(chǎng)景是訂單支付成功后,微信發(fā)送支付成功的異步回調(diào)
這時(shí)在回調(diào)中建立一個(gè)套接字來告訴server需要發(fā)送數(shù)據(jù)了

服務(wù)開啟的狀態(tài)這個(gè)流程沒有任何問題了

但是如果把服務(wù)關(guān)閉,stream_socket_client是會(huì)連接失敗的
此時(shí)的業(yè)務(wù)邏輯是如果stream_socket_client建立失敗需要退款
但是stream_socket_client建立失敗時(shí)沒有再繼續(xù)執(zhí)行了(類似阻塞的感覺),不知道是否和stream_socket_client在異步時(shí)timeout參數(shù)失效導(dǎo)致的.

如果是這樣的話那異步的stream_socket_client有什么其他的好辦法來實(shí)現(xiàn)連接失敗的判斷

截圖

2914 5 0
5個(gè)回答

zhanchen

補(bǔ)充一下,stream_socket_client連接失敗然后退款的邏輯我在使用postman進(jìn)行模擬測(cè)試時(shí)是正常的,可以走通的,就是在微信異步回調(diào)中無法執(zhí)行stream_socket_client失敗后的操作

  • 暫無評(píng)論
JustForFun

確定兩個(gè)都能跑到這個(gè)函數(shù)?記錄日志,看看 $client, $errno, $errmsg 的區(qū)別。

  • zhanchen 2020-08-28

    日志里面顯示都執(zhí)行了,微信回調(diào)的stream_socket_client后一排就沒有執(zhí)行了

  • JustForFun 2020-08-28

    @7234:日志和代碼倒是放出來吖。。。就放這點(diǎn)東西怎么解決問題

  • zhanchen 2020-08-28

    @7304:日志截圖在下面,stream_socket_client就這一個(gè)日志,兩種方式都是一樣的記錄

  • JustForFun 2020-08-28

    @7234:這個(gè)日志就是經(jīng)過格式化的:
    $err = <<<ERR
    [{$errno}]{$errstr}[{$errfile}:$errline]
    ERR;

zhanchen

截圖

  • 暫無評(píng)論
法師

你代碼寫的stream_socket_client建立失敗就return false了,就不會(huì)執(zhí)行之后的代碼了

  • zhanchen 2020-08-28

    現(xiàn)在問題就是微信回調(diào)執(zhí)行的沒有執(zhí)行到return這一行來

  • 法師 2020-08-28

    不可能,除非你實(shí)際用的stream_socket_client的參數(shù)和你上面問題貼的參數(shù)不一樣,比如用了STREAM_CLIENT_CONNECT。

  • zhanchen 2020-08-28

    @3236:我下面放了代碼,你看下吧

  • zhanchen 2020-08-28

    @3236:并且我問題下面寫了補(bǔ)充,postman模擬的就可以執(zhí)行到return false.微信回調(diào)的就不可以執(zhí)行到return false.問題不在代碼上.兩種方式執(zhí)行,一種可以一種不可以,微信回調(diào)不可以,postman請(qǐng)求可以

zhanchen

截圖

測(cè)試18行執(zhí)行了,21行日志顯示執(zhí)行了,23行沒有執(zhí)行

  • 法師 2020-08-28

    try {
    $client = stream_socket_client(...);
    } catch (\Exception $e) {
    file_put_contents($logname, $e->getMessage(), FILE_APPEND)
    }
    if (!$client) {
    return false;
    }

    可能是你框架設(shè)置了發(fā)生錯(cuò)誤拋異常,你試下捕獲異常

  • zhanchen 2020-08-28

    @3236:加了try catch成功了,老哥穩(wěn)

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