這篇文章給大家分享的是有關(guān)swoole如何獲取消息發(fā)送失敗錯(cuò)誤的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
向客戶(hù)端發(fā)送數(shù)據(jù),函數(shù)原型:
bool Server->send(mixed $fd, string $data, int $serverSocket = -1);
發(fā)送過(guò)程是異步的,底層會(huì)自動(dòng)監(jiān)聽(tīng)可寫(xiě),將數(shù)據(jù)逐步發(fā)送給客戶(hù)端
參數(shù)
$fd,客戶(hù)端的文件描述符
$data,發(fā)送的數(shù)據(jù),TCP協(xié)議較大不得超過(guò)2M,可修改 buffer_output_size 改變?cè)试S發(fā)送的較大包長(zhǎng)度
$serverSocket,向Unix Socket DGRAM對(duì)端發(fā)送數(shù)據(jù)時(shí)需要此項(xiàng)參數(shù),TCP客戶(hù)端不需要填寫(xiě)
返回值
發(fā)送成功會(huì)返回true
發(fā)送失敗會(huì)返回false,調(diào)用$server->getLastError()方法可以得到失敗的錯(cuò)誤碼
Server->getLastError
獲取最近一次操作錯(cuò)誤的錯(cuò)誤碼。業(yè)務(wù)代碼中可以根據(jù)錯(cuò)誤碼類(lèi)型執(zhí)行不同的邏輯。
function Server->getLastError()
返回一個(gè)整型數(shù)字錯(cuò)誤碼
發(fā)送失敗錯(cuò)誤
1001 連接已經(jīng)被Server端關(guān)閉了,出現(xiàn)這個(gè)錯(cuò)誤一般是代碼中已經(jīng)執(zhí)行了$serv->close()關(guān)閉了某個(gè)連接,但仍然調(diào)用$serv->send()向這個(gè)連接發(fā)送數(shù)據(jù)
1002 連接已被Client端關(guān)閉了,Socket已關(guān)閉無(wú)法發(fā)送數(shù)據(jù)到對(duì)端
1003 正在執(zhí)行close,onClose回調(diào)函數(shù)中不得使用$serv->send()
1004 連接已關(guān)閉
1005 連接不存在,傳入$fd 可能是錯(cuò)誤的
1007 接收到了超時(shí)的數(shù)據(jù),TCP關(guān)閉連接后,可能會(huì)有部分?jǐn)?shù)據(jù)殘留在管道緩存區(qū)內(nèi),這部分?jǐn)?shù)據(jù)會(huì)被丟棄
1008 發(fā)送緩存區(qū)已滿(mǎn)無(wú)法執(zhí)行send操作,出現(xiàn)這個(gè)錯(cuò)誤表示這個(gè)連接的對(duì)端無(wú)法及時(shí)收數(shù)據(jù)導(dǎo)致發(fā)送緩存區(qū)已塞滿(mǎn)
1202 發(fā)送的數(shù)據(jù)超過(guò)了 server->buffer_output_size 設(shè)置
感謝各位的閱讀!關(guān)于“swoole如何獲取消息發(fā)送失敗錯(cuò)誤”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!