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
- Local appwrite run functions --user-id n...
Hi, I'm running into an issue when testing Appwrite functions locally with user impersonation. I'm using a self-hosted Appwrite instance and running functions ...
- Function domain not available
Hello, even tho in docs you clearly describe that every function has its domain, I can not see it anywhere in any of my projects. How do I reveal the url of th...
- Inquiry: How to Reduce Cold Start Durati...
Hey! I was using Python for the function runtime, but after reading that Go has the fastest runtime, I switched my code over to Go. However, I'm still seeing co...