Объект Microsoft SignalR connectionHub не работает, если поместить в него Kotlin Coroutine? - PullRequest
0 голосов
/ 04 мая 2020

У меня есть следующая функция, которая прослушивает события на сервере и выскакивает, когда они происходят -

private fun handleGroupCreatedAction() {
        SignalRService.hubConnection?.on(Constants.groupCreatedAction, { modelResponse ->
            // TODO  - check why calling coroutine directly makes us not get the created action
            Log.d("handleGroupCreated", "handleGroupCreatedAction")
            viewModelScope.launch {
                insertChat(GroupCreatedModel.toDatabaseEntity(modelResponse))
                viewModelScope.launch {
                    modelResponse.members.forEach {
                        val groupId = modelResponse.groupId
                        val username = it.key
                        val userGroupRole = it.value
                        insertChatMembers(ChatMembersEntity(groupId, username, userGroupRole, Date().toString()))
                    }
                }
            }
        }, GroupCreatedModel::class.java)
    }

Как вы можете видеть в коде, я должен поставить журнал (или любой король кода для быть в этой строке) для того, чтобы код работал. Если это не так, код не будет продолжаться.

Почему это происходит? Это должно быть что-то, связанное с комбинацией Rx Java и сопрограмм, но я действительно понятия не имею, что мешает этому продолжаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...