Usando la versión actual de @supabase/realtime-js
no puedo conectarme a la última versión de @supabase/realtime
. Siguiendo la documentación de los cambios importantes en v0.10, ¿qué se supone que deben incluir las solicitudes de apertura de clientes?
¿Un parámetro de consulta token
? ¿Un header
?
docker-compose.yml
version: "3"
services:
realtime:
image: supabase/realtime:latest
ports:
- "4000:4000"
environment:
DB_HOST: db
DB_NAME: postgres
DB_USER: postgres
DB_PASSWORD: postgres
DB_PORT: 5432
PORT: 4000
HOSTNAME: localhost
JWT_SECRET: SOMETHING_SUPER_SECRET
SECURE_CHANNELS: "true"
depends_on:
- db
db:
image: supabase/postgres
ports:
- "5432:5432"
command:
- postgres
- -c
- wal_level=logical
environment:
POSTGRES_PASSWORD: postgres
index.js
const { RealtimeClient } = require("@supabase/realtime-js")
const client = new RealtimeClient("ws://localhost:4000/socket")
client.onOpen(() => console.log("Socket opened."))
client.onClose(() => console.log("Socket closed."))
client.onError((e) => console.log("Socket error", e.message))
client.connect()
Salida terminal
realtime_1 | 2021-01-28 16:01:20.162 [info] Running RealtimeWeb.Endpoint with cowboy 2.6.3 at :::4000 (http)
realtime_1 | 2021-01-28 16:01:20.162 [info] Access RealtimeWeb.Endpoint at http://localhost:4000
realtime_1 | 2021-01-28 16:03:25.018 [info] REFUSED CONNECTION TO RealtimeWeb.UserSocket in 114µs
realtime_1 | Transport: :websocket
realtime_1 | Serializer: Phoenix.Socket.V1.JSONSerializer
realtime_1 | Connect Info: %{}
realtime_1 | Parameters: %{"vsn" => "1.0.0"}
realtime_1 | 2021-01-28 16:03:26.033 [info] REFUSED CONNECTION TO RealtimeWeb.UserSocket in 100µs
Salida de la aplicación
realtime-test-js % node .
Socket error undefined
Socket closed.
Socket error undefined
Socket closed.
Una conexión al enchufe en tiempo real.
@acupofjose estamos en el proceso de habilitar la autenticación de JWT en tiempo real, así que disculpas si la documentación no es clara.
Parece que SECURE_CHANNELS
ya está configurado en "true"
en su docker-compose.yml
, lo que significa que tendrá que configurar su JWT_SECRET
en el secreto utilizado para firmar su JWT . Luego, puede pasar su JWT de esta manera:
const client = new RealtimeClient("ws://localhost:4000/socket", { params: { token: "your_jwt" }})
Si no desea habilitar la autenticación JWT, puede configurar SECURE_CHANNELS
en "false"
y todo debería seguir funcionando como se esperaba. Cuando SECURE_CHANNELS
se establece en "false"
, no es necesario establecer JWT_SECRET
.
Continuaré y actualizaré la documentación de @supabase/realtime-js
para reflejar lo que he escrito aquí.
Avíseme si tiene alguna otra pregunta.
¡Espero que haya ayudado!
@ w3b6x9 increíble, eso es exactamente lo que estaba buscando, ¡gracias! Intentando escribir la biblioteca @supabase/realtime-csharp
y estaba luchando por entender cómo pasar la token
.
Comentario más útil
@ w3b6x9 increíble, eso es exactamente lo que estaba buscando, ¡gracias! Intentando escribir la biblioteca
@supabase/realtime-csharp
y estaba luchando por entender cómo pasar latoken
.