使用Server Send Events时怎么调整函数的缓冲区大小呢?已经设置了proxy_buff[阿里云函数计算]

使用Server Send Events时怎么调整函数的缓冲区大小呢?已经设置了proxy_buffering off;用的是nginx 函数服务。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
3 条回复 A 作者 M 管理员
  1. 这个应该不支持,websocket 是支持的。

    此答案来自钉钉群“阿里函数计算官网客户”

  2. 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;

  3. proxy_buffering off这个设置为off,那么proxy_buffers和proxy_busy_buffers_size这两个指令将会失效。但是无论proxy_buffering是否开启,proxy_buffer_size都是生效的。