无法在 Paho 中发送大小超过 8k 的消息 - Javascript

问题描述 投票:0回答:1

我一直在尝试使用 paho for javascript 通过 mqtt 发送大消息。 但如果消息大于 8 kb,Websocket 将关闭,我无法发送消息。

我在连接后一直使用以下功能来发送消息。

function onConnect() {
   console.log("onConnect");
   var bigString ="";
  client.subscribe("topic");

  for (var i = 0;i <8200;i++){
     bigString+="a"
  }
  message = new Paho.MQTT.Message(bigString);
  message.destinationName = "topic";
  client.send(message);
}

结果总是:

onConnectionLost:AMQJS0008I Socket closed.

如果长度低于 8000 字节,一切正常。 我正在使用 ActiveMQ 服务器。

这是泛美卫生组织的限制吗? 我该如何解决这个问题?

javascript activemq mqtt paho
1个回答
0
投票

您所连接的服务器定义的最大数据包大小可能是 8kb。如果您尝试发送大于 8kb 的消息,服务器将关闭连接。因此,您需要确保发送的消息不超过服务器定义的最大数据包大小。最大数据包大小在服务器响应客户端 CONNECT 数据包而发送的 CONNACK 数据包中定义。参考 https://www.emqx.com/en/blog/best-practices-of-maximum-packet-size-in-mqtt

© www.soinside.com 2019 - 2024. All rights reserved.