Мое Android Приложение основано на протоколе TCP.
Когда я инициализирую соединение с сервером, я отправляю специальное байтовое сообщение и должен дождаться ответа сервера.
Во всех примерах репозиториев, которые я видел, в репозитории всегда есть методы для вызова источника информации с возвратом (от Android разработчиков):
class UserRepository {
private val webservice: Webservice = TODO()
// ...
fun getUser(userId: String): LiveData<User> {
// This isn't an optimal implementation. We'll fix it later.
val data = MutableLiveData<User>()
webservice.getUser(userId).enqueue(object : Callback<User> {
override fun onResponse(call: Call<User>, response: Response<User>) {
data.value = response.body()
}
// Error case is left out for brevity.
override fun onFailure(call: Call<User>, t: Throwable) {
TODO()
}
})
return data
}
}
Функция getUser возвращает данные LiveData. В моем приложении метод Login ничего не возвращает, потому что я жду, пока сервер отправит байты со специальным кодом, чтобы узнать, что он отвечает на мой запрос входа.
Есть ли способ реализовать этот шаблон с такими протоколами TCP ?
Спасибо