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
- Function deployment failed: Unable to re...
Hi Appwrite team, I have been experiencing persistent errors when i attempt to push my appwrite functions. The logs on the deployment detail page on the console...
- My cloud functions failing 3 days ago (P...
Hi, My cloud function using python has been failing for 3 days, I didn't push any new deployments... Its something to do with it not recognising the entrypoi...
- Scheduled works locking the entire Maria...
I have a scheduled function and apparently that or something is locking the entire MariaDB database and Appwrite is giving MariaDB errors. This error persists e...