Ошибка при попытке подключиться к режиму WebSocket в Kotlin с Supabase RealtimeAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка при попытке подключиться к режиму WebSocket в Kotlin с Supabase Realtime

Сообщение Anonymous »

Я делаю приложение для обмена сообщениями, и когда пользователь отправляет сообщение, его следует отображать, когда он нажимает кнопку отправки. Код деятельности написан на Java, а связь с Supabase написана в Kotlin. Когда я пытаюсь подключиться к базе данных в реальном времени, я получаю ошибку: < /p>
Error while trying to connect to realtime websocket. Trying again in 7s
URL: wss://ucqbegvfrgwmsxharvgh.supabase.co/realtime/v1/websocket?apikey=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVjcWJlZ3Zmcmd3bXN4aGFydmdoIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDE1Mjc0NDMsImV4cCI6MjA1NzEwMzQ0M30.pMQ3W4I3OHO3c12QvkVxg-HMuLx0kG3Bb-uepxnjkfc&vsn=1.0.0
java.lang.IllegalArgumentException: Engine doesn't support WebSocketCapability
at io.ktor.client.engine.HttpClientEngine$DefaultImpls.checkExtensions(HttpClientEngine.kt:189)
at io.ktor.client.engine.HttpClientEngine$DefaultImpls.access$checkExtensions(HttpClientEngine.kt:36)
at io.ktor.client.engine.HttpClientEngine$install$1.invokeSuspend(HttpClientEngine.kt:152)
at io.ktor.client.engine.HttpClientEngine$install$1.invoke(Unknown Source:15)
at io.ktor.client.engine.HttpClientEngine$install$1.invoke(Unknown Source:4)
at io.ktor.util.pipeline.DebugPipelineContext.proceedLoop(DebugPipelineContext.kt:79)
at io.ktor.util.pipeline.DebugPipelineContext.proceed(DebugPipelineContext.kt:57)
at io.ktor.util.pipeline.DebugPipelineContext.execute$ktor_utils(DebugPipelineContext.kt:63)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:92)
at io.ktor.client.plugins.HttpSend$DefaultSender.execute(HttpSend.kt:132)
at io.ktor.client.plugins.api.Send$Sender.proceed(CommonHooks.kt:47)
at io.ktor.client.plugins.HttpTimeoutKt$HttpTimeout$3$1.invokeSuspend(HttpTimeout.kt:168)
at io.ktor.client.plugins.HttpTimeoutKt$HttpTimeout$3$1.invoke(Unknown Source:17)
at io.ktor.client.plugins.HttpTimeoutKt$HttpTimeout$3$1.invoke(Unknown Source:6)
at io.ktor.client.plugins.api.Send$install$1.invokeSuspend(CommonHooks.kt:52)
at io.ktor.client.plugins.api.Send$install$1.invoke(Unknown Source:15)
at io.ktor.client.plugins.api.Send$install$1.invoke(Unknown Source:6)
at io.ktor.client.plugins.HttpSend$InterceptedSender.execute(HttpSend.kt:110)
at io.ktor.client.plugins.api.Send$Sender.proceed(CommonHooks.kt:47)
at io.ktor.client.plugins.HttpRedirectKt$HttpRedirect$2$1.invokeSuspend(HttpRedirect.kt:103)
at io.ktor.client.plugins.HttpRedirectKt$HttpRedirect$2$1.invoke(Unknown Source:17)
at io.ktor.client.plugins.HttpRedirectKt$HttpRedirect$2$1.invoke(Unknown Source:6)
at io.ktor.client.plugins.api.Send$install$1.invokeSuspend(CommonHooks.kt:52)
at io.ktor.client.plugins.api.Send$install$1.invoke(Unknown Source:15)
at io.ktor.client.plugins.api.Send$install$1.invoke(Unknown Source:6)
at io.ktor.client.plugins.HttpSend$InterceptedSender.execute(HttpSend.kt:110)
at io.ktor.client.plugins.api.Send$Sender.proceed(CommonHooks.kt:47)
at io.ktor.client.plugins.HttpCallValidatorKt$HttpCallValidator$2$2.invokeSuspend(HttpCallValidator.kt:128)
at io.ktor.client.plugins.HttpCallValidatorKt$HttpCallValidator$2$2.invoke(Unknown Source:13)
at io.ktor.client.plugins.HttpCallValidatorKt$HttpCallValidator$2$2.invoke(Unknown Source:6)
at io.ktor.client.plugins.api.Send$install$1.invokeSuspend(CommonHooks.kt:52)
at io.ktor.client.plugins.api.Send$install$1.invoke(Unknown Source:15)
at io.ktor.client.plugins.api.Send$install$1.invoke(Unknown Source:6)
at io.ktor.client.plugins.HttpSend$InterceptedSender.execute(HttpSend.kt:110)
at io.ktor.client.plugins.HttpSend$Plugin$install$1.invokeSuspend(HttpSend.kt:98)
at io.ktor.client.plugins.HttpSend$Plugin$install$1.invoke(Unknown Source:15)
at io.ktor.client.plugins.HttpSend$Plugin$install$1.invoke(Unknown Source:4)
at io.ktor.util.pipeline.DebugPipelineContext.proceedLoop(DebugPipelineContext.kt:79)
at io.ktor.util.pipeline.DebugPipelineContext.proceed(DebugPipelineContext.kt:57)
at io.ktor.util.pipeline.DebugPipelineContext.proceedWith(DebugPipelineContext.kt:42)
at io.ktor.client.plugins.websocket.WebSockets$Plugin$install$1.invokeSuspend(WebSockets.kt:188)
at io.ktor.client.plugins.websocket.WebSockets$Plugin$install$1.invoke(Unknown Source:13)
at io.ktor.client.plugins.websocket.WebSockets$Plugin$install$1.invoke(Unknown Source:4)
< /code>
Но я также получаю ответ: < /p>
System.out trying to connect
System.out connected
System.out subscribed
System.out channel status: kotlinx.coroutines.flow.ReadonlyStateFlow@a379d71
< /code>
Это метод, в котором я называю Supabase и My Supabaseclient < /p>
fun subscribeToMessages(chatroomID: String, listener: MessageListener) {
val scope = CoroutineScope(Dispatchers.IO)
GlobalScope.launch(Dispatchers.IO) {
try {
println("trying to connect")
val channel = supabase.channel("messages")
supabase.realtime.connect()

println("connected")

val changeFlow =
channel.postgresChangeFlow(schema = "public") {
table = "messages"
}

changeFlow.onEach {
println("record: ${it.record}")
}.launchIn(scope)

channel.subscribe()
println("subscribed")
println("channel status: ${channel.status}")

} catch (e: Exception) {
println("Subscription Initialization Error: ${e.message}")
e.printStackTrace()
}
}
}
< /code>
val supabase = createSupabaseClient(
supabaseUrl = "https://ucqbegvfrgwmsxharvgh.supabase.co",
supabaseKey = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVjcWJlZ3Zmcmd3bXN4aGFydmdoIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDE1Mjc0NDMsImV4cCI6MjA1NzEwMzQ0M30.pMQ3W4I3OHO3c12QvkVxg-HMuLx0kG3Bb-uepxnjkfc"
) {
install(Postgrest)
install(Auth) {
autoSaveToStorage = true
autoLoadFromStorage = true
}
install(Storage)
install(Realtime)
defaultLogLevel = LogLevel.DEBUG
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... abase-real
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»