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

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

wksmcg

用的TCP協(xié)議

$worker->onMessage = function($connection, $data)
{
  print_r("|".$data."|\n");   // 接收較長(zhǎng)字符串時(shí)被截?cái)?, 1440長(zhǎng)度時(shí)截?cái)?}

嘗試設(shè)置:

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

均無效... 是我配置的地方不對(duì)嗎?

4313 2 0
2個(gè)回答

phpcreeper

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

  • 暫無評(píng)論
walkor 打賞

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

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