lila/modules/socket/src/main/Env.scala

30 lines
807 B
Scala

package lila.socket
import akka.actor._
import com.softwaremill.macwire._
import io.lettuce.core._
import play.api.Configuration
@Module
final class Env(
appConfig: Configuration,
shutdown: CoordinatedShutdown,
notification: lila.hub.actors.Notification
)(implicit
ec: scala.concurrent.ExecutionContext,
akka: ActorSystem
) {
private val RedisUri = appConfig.get[String]("socket.redis.uri")
private val redisClient = RedisClient create RedisURI.create(RedisUri)
val remoteSocket: RemoteSocket = wire[RemoteSocket]
remoteSocket.subscribe("site-in", RemoteSocket.Protocol.In.baseReader)(remoteSocket.baseHandler)
val onlineIds = new OnlineIds(() => remoteSocket.onlineUserIds.get)
val isOnline = new IsOnline(userId => remoteSocket.onlineUserIds.get contains userId)
}