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
- Project Inactivity Clarification
I'm on appwrite free plan with my account (om.thakkar@ivcventure.com). Even though throughout the week we use the project atleast once to upload dynamic content...
- [ENHANCEMENT] Use the custom Next.js dep...
Deployment adapters on Next.js are now stable! This means that we don't have to stick to the limitations of sniffing out build outputs and manually moving or mo...
- NextJS builds sudden runtime_timeout
My builds suddenly stopped working. Activating old prebuilt snapshots work, but redeploying that same code produces builds that throw runtime_timeout FRA region