Hello, I'd like to subscribe to the realtime channel "documents" to get all change events. I am using this C# call:
await socket.ConnectAsync(new Uri("wss://[HOST]/v1/realtime?project=[PROJECT-ID]&channels[]=documents"), CancellationToken.None);
The connection is opened but I receive this error from the appwrite server:
{"type":"connected","data":{"channels":["documents"],"user":null}} {"type":"error","data":{"code":1003,"message":"Message format is not valid."}}
Can please someone tell me what am I missing? I used this rfc to figure out how to communicate with the websocket endpoint: https://github.com/appwrite/rfc/blob/main/014-realtime-api.md
Realtime with c#? What are you trying to do?
Also, maybe using the sdks as reference might be best. Are you able to read JavaScript? Or maybe dart?
I am using C# for a client application (WinForms). Unfortunatelly there is no C# Client SDK available. For the REST part I use the client sdk created by the swagger code generator. This works so far for me. Now I try to get events everytime a document has changed, done by other instances of the client application, so that I can update the view.
I see I see. So are you comfortable with reading JavaScript or dart?
How to Manually use Realtime API
Yes, reading JavaScript would be no Problem.
Currently I managed at least, that I receive events for documents with the access type "Any". As in the response after connect can be seen, user is set to null.
{"type":"connected","data":{"channels":["documents"],"user":null}}
I authenticate using Email authentication. Is there a way to use this session also for the websocket connection?
Perhaps you can implement this in your c# code: https://github.com/appwrite/sdk-for-web/blob/1dde5c7bc91b18bfc1f4e2a80b0ba77017db66fe/src/client.ts#L262.
After getting connected, the client needs to send an authentication message.
Thank you very much, it's working now. 🙂
[SOLVED] How to Manually use Realtime API
Recommended threads
- Realtime with multiple connections
I need the Realtime on multiple Collections for diffrent applicational logic. So my question is: Is there a way to have only 1 Websocket connection or do I need...
- i am getting 404 not found in my current...
in my current appwrite i am getting 404 not found from backend side and in frontend getting error of CORS error as backend is not working
- How to create a custom authentication sy...
I’m looking to create an Appwrite function that first verifies a client using some custom logic, like providing a secret key. Once this verification is complete...