WebSocket с OkHttpClient и MutableLiveData
У меня есть ViewModel с подключением к сокету. Когда.postValue(данные) обратный вызов работает во всех фрагментах, но мне нужно только в активном.
var apiData: MutableLiveData<DataWrapper>? = MutableLiveData()
fun connect() {
val builder = Request.Builder()
.url("wss://tm-it.biz:8080/")
val request = builder.build()
val client = OkHttpClient()
client.newWebSocket(request, object : WebSocketListener() {
override fun onOpen(webSocket: WebSocket, response: Response) {
super.onOpen(webSocket, response)
start()
}
override fun onMessage(webSocket: WebSocket, text: String) {
super.onMessage(webSocket, text)
doAction(text)
}
})
}
fun doAction(text: String) {
apiData!!.postValue(text)
}