使用Server Send Events时怎么调整函数的缓冲区大小呢?已经设置了proxy_buffering off;用的是nginx 函数服务。
使用Server Send Events时怎么调整函数的缓冲区大小呢?已经设置了proxy_buff[阿里云函数计算]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
使用Server Send Events时怎么调整函数的缓冲区大小呢?已经设置了proxy_buffering off;用的是nginx 函数服务。
这个应该不支持,websocket 是支持的。
此答案来自钉钉群“阿里函数计算官网客户”
ServerSocket的ReceiveBuf函数需要指定接受数据的起始地址,你就把新申请的缓冲区地址指定就OK了
1、申请缓冲区 FBufSize := BufSize; //这里的BufSize为要指定的缓冲区大小 GetMem(FReceiveBuf,FBufSize); //分配内存 FCurReceiveBuf := FReceiveBuf; //当前接收数据的位置初始化为缓冲区首地址 FPosition := 0; //当前位置初始化为0
2、接收数据:
try //接收数据到缓冲区 while Socket.ReceiveLength > 0 do begin MaxReceive := FBufSize – FPosition; //MaxReceive为当前可接受数据的最大值 //接收数据不得超过缓冲剩余大小 if Socket.ReceiveLength > MaxReceive then ReceiveLen := MaxReceive else ReceiveLen := Socket.ReceiveLength; FCurReceiveBuf := PByte(Integer(FReceiveBuf) + FPosition); //接收地址移动 //接收数据追加到缓冲区中 Socket.ReceiveBuf(FCurReceiveBuf^,ReceiveLen);
//置当前指针位置 FPosition := FPosition + ReceiveLen; //对缓冲区数据进行解析 AnalyzeBuf; end; except ClearBuf; end;
proxy_buffering off这个设置为off,那么proxy_buffers和proxy_busy_buffers_size这两个指令将会失效。但是无论proxy_buffering是否开启,proxy_buffer_size都是生效的。