28 lines
858 B
Scala
28 lines
858 B
Scala
package mqttClient
|
|
|
|
import com.hivemq.client.mqtt.mqtt5.{Mqtt5AsyncClient, Mqtt5Client}
|
|
import play.api.Configuration
|
|
|
|
import java.nio.charset.StandardCharsets
|
|
|
|
object MqttClientFactory {
|
|
def createClient(configuration: Configuration, suffix: String = ""): Mqtt5AsyncClient = {
|
|
val mqttConfig = configuration.get[Configuration]("mqtt")
|
|
|
|
var builder = Mqtt5Client.builder()
|
|
.identifier(mqttConfig.get[String]("clientId") + suffix)
|
|
.serverHost(mqttConfig.get[String]("host"))
|
|
.serverPort(mqttConfig.get("port"))
|
|
|
|
mqttConfig.getOptional[String]("username").foreach { username =>
|
|
val password = mqttConfig.get[String]("password").getBytes(StandardCharsets.US_ASCII)
|
|
builder = builder.simpleAuth()
|
|
.username(username)
|
|
.password(password)
|
|
.applySimpleAuth()
|
|
}
|
|
|
|
builder.buildAsync()
|
|
}
|
|
}
|