防止NGINX缓冲包

防止NGINX缓冲包,nginx,proxy,nginx-reverse-proxy,Nginx,Proxy,Nginx Reverse Proxy,我需要使用NGINX代理修改MQTT发布包的主题。我创建了一个由js_过滤器调用的njs函数 function updateTopic(s) { s.log("buf: " + s.buffer.toString('hex')); if (!s.fromUpstream) { if(s.buffer.indexOf("topic") != -1){ s.buffer = s.buffer.replace("topic

我需要使用NGINX代理修改MQTT发布包的主题。我创建了一个由js_过滤器调用的njs函数

function updateTopic(s) {
  s.log("buf: " + s.buffer.toString('hex'));

  if (!s.fromUpstream) {
    if(s.buffer.indexOf("topic") != -1){
      s.buffer = s.buffer.replace("topic", "mopic").toBytes();
      s.log("new buffer: " + s.buffer.toString('hex'));
    }

  }

  return s.OK;
}
返回:

buf:300F0005746F7069636D657373631676533

新缓冲区:300F00056D6F7069636D657373631676533

此函数可正确更新s.buffer,但在收到其他类型的包之前,不会传输包。当接收到订阅、断开连接、ping消息时,所有缓冲消息将立即传输

如果此函数不替换包,则会立即传输


在更改s.buffer后是否应该做一些特殊的操作?

结果是由于一个bug,该bug将在以后的版本中修复