maxSendBufferSize 是发送缓冲区的大小,当服务端发送速度大于客户端接收速度时,数据会挤压在发送缓冲区,如果发送缓冲区满,则触发onBufferFull事件回调,在这个事件回调中做处理(如果onMesage不能及时处理数据,数据会首先数据会积压在客户端socket发送缓冲区(操作系统提供,大小约几十K)和workerman服务器的socket接受缓冲区(操作系统提供,大小约几十K),如果客户端socket发送缓冲区满,则客户端调用socket写操作将阻塞(block模式)或者立刻返回失败(非阻塞模式),当服务端onMessage处理完毕再次读取本地socket接收缓冲区数据后,客户端socket发送缓冲区的数据会继续发送过来到服务端socket接收缓冲区,然后依次循环。所以当服务端onMessage不能及时处理数据,不会导致maxSendBufferSize满,但是可能会导致数据在客户端和服务端的socket缓冲区积压。
引起的?
要怎么解决?