package mqttClient import actors.auctions.AuctionPublisher import com.google.inject.{AbstractModule, Provides, Singleton} import com.hivemq.client.mqtt.mqtt5.{Mqtt5AsyncClient, Mqtt5Client} import play.api.libs.concurrent.PekkoGuiceSupport import play.api.{Configuration, Logging} class Module extends AbstractModule with PekkoGuiceSupport with Logging { override def configure(): Unit = { bindTypedActor(MessageProcessorActor, "mqtt-message-processor-actor") bind(classOf[MessageProcessorActor.Reg]).asEagerSingleton() bindTypedActor(AuctionPublisher, "auction-publisher") // TODO move somewhere else } @Provides @Singleton def mqtt5Client(config: Configuration): Mqtt5AsyncClient = MqttClientFactory.createClient(config) }