QUIC桥接,连接失败问题

服务器是docker上的EMQX,如图

下面是nanomq.conf的部分内容

bridges.mqtt.emqx {
	## TCP URL 格式:  mqtt-tcp://host:port
	## TLS URL 格式:  tls+mqtt-tcp://host:port
	## QUIC URL 格式: mqtt-quic://host:port
	server = "mqtt-quic://192.168.43.54:14567"
	proto_ver = 5
	username = dyx
	password = dyx
	clean_start = true
	keepalive = 60s
	forwards = ["forward1/#","forward2/#"]
	quic_keepalive = 120s
	quic_idle_timeout = 120s
	quic_discon_timeout = 20s
	quic_handshake_timeout = 60s
	hybrid_bridging = false
	subscription = [
		{
			topic = "recv/topic1"
			qos = 0
		},
		{
			topic = "recv/topic2"
			qos = 0
		}
	]
	max_parallel_processes = 2 
	max_send_queue_len = 1024
	max_recv_queue_len = 1024
}

在启动nanomq时,出现这种情况

此时使用客户端与docker的服务器连接时出现这种情况
图片
连接不上,请问大佬,这里应该怎么解决呢?

另外在编译时,执行sudo ninja install此条命令时,出现大量的warning?会不会和这个有关呢?

warning 无关,这是新的0.20版本的桥接配置文件更新了,需要配置topic reflection,log也提示你了 remote_topic local_topic not found. 所以你的桥接不生效。
如果不需要使用topic reflection,就直接使用0.19.5版本。
或查阅最新文档和master分之的conf示例,修改你的桥接配置

谢谢大佬!!虽然通过配置topic reflection,解决了remote_topic local_topic not found 的问题,但是依然没有连接成功。



docker的EMQX没有变。

下面是我更改后的nanomq.conf的部分内容

bridges.mqtt.name {
	## TCP URL 格式:  mqtt-tcp://host:port
	## TLS URL 格式:  tls+mqtt-tcp://host:port
	## QUIC URL 格式: mqtt-quic://host:port
	server = "mqtt-quic://192.168.43.54:14567"
	proto_ver = 4
	username = dyx
	password = dyx
	clean_start = true
	keepalive = 60s
	forwards = [
		{
			remote_topic = "fwd/topic1"
			local_topic = "topic1"
			qos = 0
		},
		{
			remote_topic = "fwd/topic2"
			local_topic = "topic2"
			qos = 0
		}
	]
	quic_keepalive = 120s
	quic_idle_timeout = 120s
	quic_discon_timeout = 20s
	quic_handshake_timeout = 60s
	hybrid_bridging = false
	subscription = [
		{
			remote_topic = "cmd/topic1"
			local_topic = "topic3"
			qos = 0
		},
		{
			remote_topic = "cmd/topic2"
			local_topic = "topic4"
			qos = 0
		}
	]
	max_parallel_processes = 2 
	max_send_queue_len = 1024
	max_recv_queue_len = 1024
}




启动 NanoMQ 时正常启动





然而,在执行第一个客户端的时候,依然有报错




此时执行第二个客户端时,出现以下错误


并且同时,NanoMQ也出现以下提示信息

那么此时应该怎么解决呢?

不知道你想干嘛… 192.168.43.54是哪个broker的IP?你的docker启动暴露了IP和端口没?
NANOMQ没有支持quic listener,只能和打开了QUIC功能的EMQX5 进行QUIC桥接,请打开log以便检查nanomq quic桥接是否成功,或者远端是否有log。

quic客户端工具连接失败, 请验证到43.54的连通性。而且你没用指定端口

如果192.168.233.132是nanomq的ip的话, 最后两张图是正常的。nanomq_cli的pub工具就是pub完消息后退出,log只是告警说客户端主动断开了。论坛里其他帖子也有问过,请先搜索查阅。

我想做的是解决下图的Unknow error #136 的问题(即使使用了指定端口14567也是同样的error #136

192.168.43.54是EMQX5的IP

docker启动后,quic客户端的主机可以通过192.168.43.54:18083进入管理员界面,并且在docker输出如下信息

远端的log 在上述过程中,并未输出任何东西。

18083通不代表14567通…

本地使用

nanomq_cli sub --quic -h 13.49.223.253 -p 14567 -t “forward1/#” -q 2

连接正常

请自行检查你的docker连通性问题

感谢大佬!
使用了

nanomq_cli sub --quic -h 13.49.223.253 -p 14567 -t “forward1/#” -q 2

出现以下输出,应该是正常

quic_connect_cb: mqtt-quic://13.49.223.253:14567 connect result: 0 
quic_disconnect_cb: Got null msg
quic_connect_cb: mqtt-quic://13.49.223.253:14567 connect result: 0 

那估计是我的docker有问题,感谢感谢!!