Closed razvanphp closed 1 month ago
This will have to wait until after 4.0.0
ships.
Thank you for considering this!
Do you know if setting it via the advanced config has any effect? Seems to be accepted.
$ rabbitmqctl environment
[...]
{rabbitmq_web_mqtt,
[{cowboy_opts,[]},
{num_ssl_acceptors,10},
{num_tcp_acceptors,10},
{proxy_protocol,false},
{ssl_config,
[{cacertfile,"/opt/bitnami/rabbitmq/certs/ca_certificate.pem"},
{keyfile,"/opt/bitnami/rabbitmq/certs/server_key.pem"},
{certfile,"/opt/bitnami/rabbitmq/certs/server_certificate.pem"},
{port,15676},
{backlog,1024}]},
{tcp_config,[{port,15675},{nodelay,true}]}]},
It should, rabbitmq_web_mqtt
picks that tcp_config
and passes it to ranch
hmm, actually it seems that the default nodelay
value in ranch is true
...
@razvanphp setting rabbitmq_web_mqtt
settings via advanced.config
works just like for any other Erlang app (plugin) or key.
How to Inspect Effective Configuration has been a dedicated doc section for years.
"This seems accepted" means nothing for advanced.config
, it does not have validation beyond what certain parts of RabbitMQ may explicitly verify on boot.
I do not understand what's being asked here any more => this is discussion material.
Is your feature request related to a problem? Please describe.
We are trying to set a low latency mqtt server that is also accessed from the web browser. Because of those constraints, we have to use
web-mqtt
plugin. We noticed while tracking the time with Wireshark that there is a delay in ACK of the packets sent.We studied the plugin source code and we understood that since this plugin is using Ranch and under the hood, so
tcp_listen_options.nodelay
do not apply for the socket creation; instead, this needs to be set viatcp_config
https://github.com/rabbitmq/rabbitmq-server/blob/c593d706cd0dab75b4df8114a38cb7d1c1d35a99/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl#L102
https://github.com/rabbitmq/rabbitmq-server/blob/c593d706cd0dab75b4df8114a38cb7d1c1d35a99/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl#L130
Describe the solution you'd like
To be able to set those options as well, similar to simple mqtt:
Describe alternatives you've considered
setting this in the advanced config format:
Additional context
Thank you in advance!