Comments (6)
Note that the provided asynchronous server example can also use a single thread for multiple requests, just set the number of threads to 1 in the constructor.
from beast.
Yes, but "spawn" technology uses Boost.Coroutines internally and can produce code that will be as simple as http_sync_server but it will be asynchronous
I will try to make sample and show you. I think it will be interesting, as Beast has its own asyncronour read/write methods and we should check if they can be safely used with Coroutines
from beast.
I'm sure that Beast works with coroutines, because some of the unit tests use them:
https://github.com/vinniefalco/Beast/blob/master/test/websocket/stream.cpp#L436
I have to be honest, part of my objection to providing a coroutine server example is that I don't want to have to maintain two copies of each server, especially because I plan on making significant changes to those servers (which I would have to replicate for the coroutine versions).
from beast.
I accept your position. Beast should have 100% reliable and compatible low-level http/websocket protocol. And making servers should be done later or somewhere else. If I will find any problems with coroutines, I will make test for it
BTW, any plans for HTTP2?
from beast.
Yes, I have a design for what HTTP/2 would look like. First, note that the message
class is already HTTP/2 compatible. One complication is that HTTP/2 requires a stateful connection, in order to decompress the headers and keep track of request/response channels. So there has to be an object wrapping a next layer that represents an active HTTP/2 session. Very much like how the current websocket::stream
is designed.
from beast.
Closing this since its addressed by the tests which use coroutines
from beast.
Related Issues (20)
- http::async_read hides client disconnection errors HOT 7
- http client tcp ssl stream async_shutdown blocks forever HOT 13
- Double definition of zlib DEF_MEM_LEVEL HOT 2
- Multiple unreachable code warnings if compiling with /W4 in VS2022 HOT 4
- Hi
- Hi,
- Facing error while running advanced_server.cpp file in centos 9. HOT 41
- http_client_sync example hangs on uploading ~2GB multipart data HOT 8
- Memory Leak and Random Closed SSL Websocket HOT 5
- JSON Streaming Client for JSON greater than 8 MB HOT 11
- Question: Can Beast run on top of Unix domain sockets (aka `local::stream_protocol`)? HOT 4
- Is boost 1.84 ssl_stream not intended to be used as a high-performance https server? HOT 7
- Beast Server Unable to Serve JavaScript-Enabled Web Pages/Apps HOT 4
- request.prepare_payload() 1.67 HOT 5
- Issues while running this Chat Multi Boost Beast Server Code. HOT 5
- websocket reconnect HOT 3
- body_limit exceeded error using coro server example HOT 4
- support SSLKEYLOGFILE env var for wireshark HOT 3
- Test Matrix needs work
- Issue trying to read an "endless" chunked stream HOT 3
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 beast.