I noticed that the Appwrite Python function uses Flask for its construction, so I attempted to send chunks with Flask’s SSE response. However, the Appwrite function responses do not support the use of return Response(event_stream(), mimetype="text/event-stream")
There are inbuilt function to return value. You can check the example from the official docs:
https://appwrite.io/docs/products/functions/development#response
def main(context):
type = context.req.query['type']
if type == 'empty':
return context.res.empty()
elif type =='json':
return context.res.json({"type": "This is a JSON response"})
elif type == 'redirect':
return context.res.redirect("https://appwrite.io", 301)
elif type == 'html':
return context.res.send("<h1>This is an HTML response</h1>", 200, {
"content-type": "text/html"
})
else:
return context.res.send("This is a text response")
I was aware of that, but none of them support the SSE Response, which I require.
I tried the next function:```python import time
def main(context): context.log("Starting")
def event_stream():
context.log("I am inside the Function")
for i in range(0, 20):
yield 'data: {"message": "Hello ' + "{}".format(i) + '"}\n\n'
time.sleep(0.3)
yield 'data: {"message": "World"}\n\n'
yield 'data: {"message": "stop"}\n\n'
yield 'data: {"message": "World"}\n\n'
yield 'data: {"message": "World"}\n\n'
yield 'data: {"message": "World"}\n\n'
# Response(event_stream(), mimetype="text/event-stream")
return context.res.send(event_stream(), 200, {"content-type": "text/event-stream"})
Its works but It send all yield message as one response only.
I believe this is happening because the Appwrite server doesn't support setting the MIME type to text/event-stream, which is necessary to enable server-sent events on both the client and server side.
???
Yes, this is correct. Appwrite Functions do not currently support chunked responses. My understanding is that this is on the wishlist, but I'm not aware of any open Issue for it, or of any specific milestone (unless this is part of the SSR milestone for 1.5? - would need someone from Core to clarify that).
Recommended threads
- Appwrite DNS nameservers return SERVFAIL...
My custom domain demomanasa.online (and all its subdomains) stopped resolving with ERR_NAME_NOT_RESOLVED for all visitors. I have traced the failure to Appwrite...
- Not allowed permission to upsert a prese...
```js const presenceID = ID.unique(); setPID(presenceID); const presence = await presences.upsert({ presenceId: presenceID, status: "online"...
- Realtime Error Invalid query: Syntax err...
I was test driving Self-Hosted Appwrite for my use with Swift IOS apps as a backend while back and after successful trials, I started to move to incorporate int...