Doc fixes and tidy

This commit is contained in:
Vinnie Falco
2017-06-19 11:00:32 -07:00
parent d5f15976e7
commit c3e2de29ef
3 changed files with 32 additions and 11 deletions

View File

@ -3,6 +3,7 @@ Version 62:
* Remove libssl-dev from a Travis matrix item
* Increase detail::static_ostream coverage
* Add server-framework tests
* Doc fixes and tidy
--------------------------------------------------------------------------------

View File

@ -80,8 +80,6 @@ Here are all of the example functions and classes presented
throughout the documentation, they can be included and used
in your program without modification
* [repo_file example/doc/core_examples.hpp]
* [repo_file example/doc/http_examples.hpp]
[endsect]

View File

@ -10,6 +10,7 @@ It contains the following components
* WebSocket ports (synchronous and asynchronous)
- Echoes back any message received
- Plain or SSL (if OpenSSL available)
* HTTP ports (synchronous and asynchronous)
- Serves files from a configurable directory on GET request
@ -17,6 +18,9 @@ It contains the following components
- Routes WebSocket Upgrade requests to a WebSocket port
- Handles Expect: 100-continue
- Supports pipelined requests
- Plain or SSL (if OpenSSL available)
* Multi-Port: Plain, OpenSSL, HTTP, WebSocket **All on the same port!**
The server is designed to use modular components that users may simply copy
into their own project to get started quickly. Two concepts are introduced:
@ -24,16 +28,17 @@ into their own project to get started quickly. Two concepts are introduced:
## PortHandler
The **PortHandler** concept defines an algorithm for handling incoming
connections received on a listening socket. The example comes with four
port handlers:
connections received on a listening socket. The example comes with a
total of *nine* port handlers!
* `http_sync_port` Serves HTTP content using synchronous Beast calls
| Type | Plain | SSL |
| ----- | ----------------- | ------------------ |
| Sync | `http_sync_port` | `https_sync_port` |
| | `ws_sync_port` | `wss_sync_port` |
| Async | `http_async_port` | `https_async_port` |
| | `wss_sync_port` | `wss_async_port` |
| | `multi_port` | `multi_port` |
* `http_async_port` Serves HTTP content using asynchronous Beast calls
* `ws_sync_port` A synchronous WebSocket echo server using synchronous Beast calls
* `ws_async_port` An asynchronous WebSocket echo server using synchronous Beast calls
A port handler takes the stream object resulting form an incoming connection
request and constructs a handler-specific connection object which provides
@ -57,7 +62,7 @@ to a websocket port handler.
## Relationship
This diagram shows the relationship of the server object, to the four
This diagram shows the relationship of the server object, to the nine
ports created in the example program, and the HTTP services contained by
the HTTP ports:
@ -135,3 +140,20 @@ struct Service
Send const& send) const
};
```
## Upgrade Service Requirements
To work with the `ws_upgrade_service`, a port or handler needs
this signature:
```C++
struct UpgradePort
{
template<class Stream, class Body, class Fields>
void
on_upgrade(
Stream&& stream,
endpoint_type ep,
beast::http::request<Body, Fields>&& req);
```