服务器是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?会不会和这个有关呢?
jaylin
2
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也出现以下提示信息
那么此时应该怎么解决呢?
jaylin
4
不知道你想干嘛… 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 在上述过程中,并未输出任何东西。
jaylin
6
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有问题,感谢感谢!!