chzzkHandler fix

This commit is contained in:
dalbodeule 2024-08-15 19:26:26 +09:00
parent 032a03b3ce
commit 23c28ce643
No known key found for this signature in database
GPG Key ID: EFA860D069C9FA65

View File

@ -181,7 +181,9 @@ class UserHandler(
private var user: User, private var user: User,
var streamStartTime: LocalDateTime?, var streamStartTime: LocalDateTime?,
) { ) {
private val messageHandler = MessageHandler(this@UserHandler) var messageHandler: MessageHandler
var listener: ChzzkChat
private val dispatcher: CoroutinesEventBus by inject(CoroutinesEventBus::class.java) private val dispatcher: CoroutinesEventBus by inject(CoroutinesEventBus::class.java)
private var _isActive: Boolean private var _isActive: Boolean
get() = LiveStatusService.getLiveStatus(user)?.status ?: false get() = LiveStatusService.getLiveStatus(user)?.status ?: false
@ -189,29 +191,33 @@ class UserHandler(
LiveStatusService.updateOrCreate(user, value) LiveStatusService.updateOrCreate(user, value)
} }
var listener: ChzzkChat = chzzk.chat(channel.channelId) init {
.withAutoReconnect(true) messageHandler = MessageHandler(this@UserHandler)
.withChatListener(object : ChatEventListener { listener = chzzk.chat(channel.channelId)
override fun onConnect(chat: ChzzkChat, isReconnecting: Boolean) { .withAutoReconnect(true)
logger.info("ChzzkChat connected. ${channel.channelName} - ${channel.channelId} / reconnected: $isReconnecting") .withChatListener(object : ChatEventListener {
} override fun onConnect(chat: ChzzkChat, isReconnecting: Boolean) {
logger.info("${channel.channelName} - ${channel.channelId} / reconnected: $isReconnecting")
}
override fun onError(ex: Exception) { override fun onError(ex: Exception) {
logger.info("ChzzkChat error. ${channel.channelName} - ${channel.channelId}") logger.info("ChzzkChat error. ${channel.channelName} - ${channel.channelId}")
logger.info(ex.stackTraceToString()) logger.info(ex.stackTraceToString())
} }
override fun onChat(msg: ChatMessage) { override fun onChat(msg: ChatMessage) {
if(!_isActive) return if(!_isActive) return
messageHandler.handle(msg, user) messageHandler.handle(msg, user)
} }
override fun onConnectionClosed(code: Int, reason: String?, remote: Boolean, tryingToReconnect: Boolean) {
logger.info("ChzzkChat closed. ${channel.channelName} - ${channel.channelId}")
logger.info("Reason: $reason / $tryingToReconnect")
}
})
.build()
}
override fun onConnectionClosed(code: Int, reason: String?, remote: Boolean, tryingToReconnect: Boolean) {
logger.info("ChzzkChat closed. ${channel.channelName} - ${channel.channelId}")
logger.info("Reason: $reason / $tryingToReconnect")
}
})
.build()
internal fun disable() { internal fun disable() {
listener.closeAsync() listener.closeAsync()