Avec la version actuelle de @supabase/realtime-js
je ne parviens pas à me connecter à la dernière version de @supabase/realtime
. Suite à la documentation des changements de rupture de la v0.10, que sont censées inclure les demandes d'ouverture de client?
Un paramètre de requête 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()
Sortie de borne
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
Sortie d'application
realtime-test-js % node .
Socket error undefined
Socket closed.
Socket error undefined
Socket closed.
Une connexion à la socket en temps réel.
@acupofjose nous sommes en train d'activer l'authentification JWT en temps réel, alors nous vous
On dirait que SECURE_CHANNELS
est déjà défini sur "true"
dans votre docker-compose.yml
, ce qui signifie que vous devrez définir votre JWT_SECRET
sur le secret utilisé pour signer votre JWT . Ensuite, vous pouvez passer votre JWT comme ceci:
const client = new RealtimeClient("ws://localhost:4000/socket", { params: { token: "your_jwt" }})
Si vous ne souhaitez pas activer l'authentification JWT, vous pouvez définir SECURE_CHANNELS
sur "false"
et tout devrait continuer à fonctionner comme prévu. Lorsque SECURE_CHANNELS
est défini sur "false"
, vous n'avez pas besoin de définir JWT_SECRET
.
Je vais mettre @supabase/realtime-js
jour la documentation de
Faites-moi savoir si vous avez d'autres questions.
J'espère que cela a aidé!
@ w3b6x9 génial, c'est exactement ce que je cherchais, merci! Essayer d'écrire la bibliothèque @supabase/realtime-csharp
et avoir du mal à comprendre comment passer le token
.
Commentaire le plus utile
@ w3b6x9 génial, c'est exactement ce que je cherchais, merci! Essayer d'écrire la bibliothèque
@supabase/realtime-csharp
et avoir du mal à comprendre comment passer letoken
.