这是通过mqtt-spring集成对mqtt代理进行身份验证的代码,
public DefaultMqttPahoClientFactory clientfactory() {
DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();
MqttConnectOptions options = new MqttConnectOptions();
options.setUserName("username");
options.setPassword("password".toCharArray());
options.setServerURIs(new String[] { "tcp://localhost:1883" });
factory.setConnectionOptions(options);
return factory;
}
@Bean
@ServiceActivator(inputChannel = "mqttOutboundChannel")
public MqttPahoMessageHandler mqqtMessageHandler() {
MqttPahoMessageHandler handler = new MqttPahoMessageHandler("clientId", clientfactory());
handler.setAsync(true);
handler.setDefaultQos(2);
handler.setDefaultRetained(true);
return handler;
}
假设我正在使用许多客户端将数据发布到他们自己的主题集,并且我应该为每个客户端分配唯一的身份验证凭据以建立mqtt代理连接。我认为上面的代码甚至只允许一组凭据如果我们使用很多客户。是否可以动态化?
答案 0 :(得分:0)
您需要用自己的DefaultMqttPahoClientFactory
实现来替换MqttPahoClientFactory
;也许是DefaultMqttPahoClientFactory
的子类。