Comments (6)
The ability to specify the framing is not present in the ASGI specification. I think you could make an argument that it should be an ASGI extension. I've opened this issue to get views.
from hypercorn.
Could you comment on the ASGI ref issue?
from hypercorn.
Why change the ASGI spec? message.bytes can be an iterable of text or bytes, and in that case it should iterate through it and send BytesMessage(..., message_finished=False) similar to what the websockets lib did here.
from hypercorn.
Making the text or bytes an iterable would break one of the ASGI spec assumptions (that each message is complete and immutable). Whilst I could do this, the purpose of Hypercorn is to be an ASGI server, so I don't think it would be the right thing to do. I think the only option is an ASGI extension that allows for this - which would require a motivating use case.
from hypercorn.
If that's the case then there should be a note in the documentation disclosing that hypercorn/quart doesn't fully implement the websockets protocol (rfc6455), in particular the continuation frames, so that whoever wants to use these libs is aware of the limitation.
The most obvious use case is server sending a message of unknown length (e.g. streams like compressed files, live media streaming, etc.) or buffered large file transfers. In my case I was only testing the protocol and was hoping that I'd get the same functionality as with the websockets library.
from hypercorn.
I think the documentation is sufficient, in that Hypercorn claims to be an ASGI compliant server rather than a complete WebSocket server.
I think there is a case for this being an ASGI extension though, it does require convincing others in the ASGI issue though.
from hypercorn.
Related Issues (20)
- Need clear documentation for configuration HOT 1
- Is Hypercorn pre-fork or post-fork? How can I integrate it with opentelemetry? HOT 4
- test_startup_failure fails with trio 0.25.0 HOT 3
- Performance issue HOT 2
- Is Hypercorn server serving up response using HTTP/2 HOT 1
- FastAPI deployed with hypercorn in GCP Cloud Run returning 503 sporadically HOT 6
- Entire hypercorn server crashes when receiving trailing data on a websocket upgrade request HOT 1
- Occassionally with HTTP2, server does not send "End Stream" flag as True when all the data has been sent in response
- Can the ASGI application be specified in the config file?
- How do I log username in access log? HOT 1
- Getting permission Error [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions when running FastAPI in IIS
- Need clarification on trusted hops HOT 1
- Reload up to date SSL certificates without restarting server?
- pytest-cov / pytest-sugar not included in pyproject.toml
- TCP server keep-alive times out even though data is being received. HOT 2
- Can we please get a new release? HOT 1
- ProxyFixMiddleware throws exception when X-Forwarded-Host is present HOT 1
- Unexpected "shutdown without Lifespan support" error on Hypercorn 0.17.3 HOT 1
- Cannot start WSGI application using Dispatcher middleware to support both FastAPI and Flash app at the same time.
- It seems hypercorn is not closing connections properly HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hypercorn.