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

workerman接收數(shù)據(jù)長度

wksmcg

用的TCP協(xié)議

$worker->onMessage = function($connection, $data)
{
  print_r("|".$data."|\n");   // 接收較長字符串時被截斷 , 1440長度時截斷
}

嘗試設(shè)置:

TcpConnection::$maxPackageSize = 102400000;
TcpConnection::$defaultMaxSendBufferSize = 200*1024*1024;
$connection->maxSendBufferSize = 10240000;

均無效... 是我配置的地方不對嗎?

4257 2 0
2個回答

phpcreeper

1、上面幾個配置首先是無效的,而且?TcpConnection::$maxPackageSize指的是每個連接能夠接收的最大包包長,這個是針對應(yīng)用層協(xié)議而言的;
另外兩個設(shè)置則是針對應(yīng)用層發(fā)送緩沖區(qū)的設(shè)置,和你的需求更不相關(guān)了。
2、TCP協(xié)議接收包時默認(rèn)讀取的是65535個字節(jié)。

  • 暫無評論
walkor 打賞

TCP 2個特點,
1、分幀傳輸
2、數(shù)據(jù)無邊界。
?
底層tcp數(shù)據(jù)是一幀一幀傳輸?shù)椒?wù)端的,每一幀數(shù)據(jù)大小約為1400字節(jié),所以每次onMessage里收到1400字節(jié)左右的數(shù)據(jù)是正常的。
?
由于特點2,無邊界,所以操作系統(tǒng)沒辦法判斷哪些幀是一個完整的數(shù)據(jù)包,也就沒辦法做到收到完整的數(shù)據(jù)包后出發(fā)onMessage。
?
由于以上特點才會有這么多的應(yīng)用層通訊協(xié)議出現(xiàn),http、websocket、ftp等等。應(yīng)用層通訊協(xié)議的作用就是通過分析數(shù)據(jù)幀里的數(shù)據(jù)來判斷這個數(shù)據(jù)包的大小,然后來判斷當(dāng)前收到的這些數(shù)據(jù)幀是否已經(jīng)是一個完整的數(shù)據(jù)包,如果不完整會繼續(xù)等待,如果完整則觸發(fā)onMessage。
?
所以要收到完整的數(shù)據(jù)包需要增加一個應(yīng)用層協(xié)議,參考手冊
http://doc.workerman.net/protocols/why-protocols.html
?

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