I'm receiving this error when attempting to setup a realtime connection listening for updates to a specific document in my users connection.
My code is as follows:
export async function addUserUpdateListener(auth_id: string, callback: (payload: RealtimeResponseEvent<unknown>) => void) {
try {
const userData = await db.listDocuments(
'chat',
'users',
[
// @ts-ignore
q.equal('auth_id', [auth_id])
]
);
if (userData.documents.length > 0) {
const [user] = userData.documents;
const {$id: userDocId} = user;
const event = `databases.chat.collections.users.documents.${userDocId}.update`;
return client.subscribe(event, callback);
}
}
catch (e) {
console.warn(e);
}
return null;
}
And the path it's attempting to open a websocket connection to is:
wss://cloud.appwrite.io/v1/realtime?project=648a2161cc4d4565adc2&channels%5B%5D=databases.chat.collections.messages.documents&channels%5B%5D=databases.chat.collections.users.documents.648a2228362b7d35edd2.update
Note it appears to be amalgamating the two realtime listeners I have, but I assume this is how it's meant to function.
It's also worth noting that the other realtime listener I have setup is still working.
Channels are a bit different from events, https://appwrite.io/docs/realtime#channels
To subscribe to channel that includes the update event you need to do something like this
const event = `databases.chat.collections.users.documents.${userDocId}`;
return client.subscribe(event, callback);
Awesome gotcha! Thanks @Binyamin 😄
[Solved] WebSocket is closed before the connection is established?
Recommended threads
- How to handle ghost accounts created by ...
Appwrite create the account with the email and send an invitation link with a secret. I am able to accept the invitation and add the account as a member on the ...
- Re-connect site to domain verification f...
I have mistakenly deleted appwrite site without removing domain. Now I created same site and want to re-connect my domain. It gives this error while verify. How...
- SSR share session to client using custom...
Hi, so I was trying to get a hang of using SSR and using realtime updates in the same time which is done easiest if you have a custom domain in Appwrite and as ...