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) 
}

0 ответов

Другие вопросы по тегам