上面是代碼
出現(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)連接失敗的判斷
補(bǔ)充一下,stream_socket_client連接失敗然后退款的邏輯我在使用postman進(jìn)行模擬測(cè)試時(shí)是正常的,可以走通的,就是在微信異步回調(diào)中無法執(zhí)行stream_socket_client失敗后的操作
確定兩個(gè)都能跑到這個(gè)函數(shù)?記錄日志,看看 $client, $errno, $errmsg 的區(qū)別。
@7234:這個(gè)日志就是經(jīng)過格式化的:
$err = <<<ERR
[{$errno}]{$errstr}[{$errfile}:$errline]
ERR;
測(cè)試18行執(zhí)行了,21行日志顯示執(zhí)行了,23行沒有執(zhí)行