我用的官方的json rpc服務(wù)代碼,改成了ssl加密連接,一般數(shù)據(jù)通信都沒有問題,但是發(fā)現(xiàn)有個(gè)8192的限制,發(fā)送數(shù)據(jù)最大只能是8192,數(shù)據(jù)量大的時(shí)候,客戶端收到的數(shù)據(jù)不完整,無法正常完成業(yè)務(wù),在源碼中
,把這個(gè)8192去掉就能正常發(fā)送完整的數(shù)據(jù)了,問題是,為什么要有這個(gè)限制,取消有什么影響嗎?
收不到完整數(shù)據(jù)的客戶端是什么客戶端?貼下客戶端接收部分的代碼。如果接收不完整,可能是客戶端接收代碼有問題,接收時(shí)要判斷數(shù)據(jù)結(jié)束標(biāo)記,如果沒收到標(biāo)記就應(yīng)該繼續(xù)讀,這樣就能讀全了。
https://bugs.php.net/bug.php?id=72333
8192這個(gè)是因?yàn)閜hp有些版本有bug,ssl下發(fā)送大的數(shù)據(jù)會(huì)報(bào)錯(cuò),需要截?cái)喑?192分多次發(fā)送。
這個(gè)bug在php 7.0.18 及 php 7.1.4 被修復(fù)。如果你的php版本大于這個(gè)版本,可以去掉8192的限制。