mirror of
https://github.com/boostorg/beast.git
synced 2026-07-06 16:30:52 +02:00
2c17d04a3a
fix #80, #212, fix #303, fix #314, fix #317 websocket::stream now provides the following families of functions for performing handshakes: When operating in the server role: * stream::accept * stream::accept_ex * stream::async_accept * stream::async_accept_ex When operating in the client role: * stream::handshake * stream::handshake_ex * stream::async_handshake * stream::async_handshake_ex Member functions ending with "_ex" allow an additional RequestDecorator parameter (for the accept family of functions) or ResponseDecorator parameter (for the handshake family of functions). The decorator is called to optionally modify the contents of the HTTP request or HTTP response object generated by the implementation, before the message is sent. This permits callers to set the User-Agent or Server fields, add or modify HTTP fields related to subprotocols, or perform any required transformation of the HTTP message for application-specific needs. The handshake() family of functions now have an additional set of overloads accepting a parameter of type response_type&, allowing the caller to receive the HTTP Response to the Upgrade handshake. This permits inspection of the response to handle things like subprotocols, authentication, or other application-specific needs. The new implementation does not require any state to be stored in the stream object. Therefore, websocket::stream objects are now smaller in size. The overload of set_option for setting a decorator on the stream is removed. The only way to set decorators now is with a suitable overload of accept or handshake.
Building documentation
Specifying Files
To specify the source files for which to build documentation, modify INPUT
and its related fields in doc/source.dox. Note that the INPUT paths are
relative to the doc/ directory.
Install Dependencies
Windows
Install these dependencies:
- Install Doxygen
- Download the following zip files from xsltproc
(Alternate download: ftp://ftp.zlatkovic.com/libxml/),
and extract the
bin\folder contents into any folder in your path.
- iconv
- libxml2
- libxslt
- zlib
- Download Boost
- Extract the compressed file contents to your (new)
$BOOST_ROOTlocation. - Open a command prompt or shell in the
$BOOST_ROOT. ./bootstrap.bat- If it is not already there, add your
$BOOST_ROOTto your environment$PATH.
MacOS
- Install doxygen:
- Use homebrew to install:
brew install doxygen. The executable will be installed in/usr/local/binwhich is already in your path. - Alternatively, install from here: doxygen.
You'll then need to make doxygen available to your command line. You can
do this by adding a symbolic link from
/usr/local/binto the doxygen executable. For example,$ ln -s /Applications/Doxygen.app/Contents/Resources/doxygen /usr/local/bin/doxygen
- Install Boost
- Extract the compressed file contents to your (new)
$BOOST_ROOTlocation. - Open a command prompt or shell in the
$BOOST_ROOT. $ ./bootstrap.bat- If it is not already there, add your
$BOOST_ROOTto your environment$PATH. This makes theb2command available to the command line. - That should be all that's required. In OS X 10.11, at least, libxml2 and libxslt come pre-installed.
Linux
- Install Docker
- Build Docker image. From the Beast root folder:
sudo docker build -t beast-docs doc/
Do it
Windows & MacOS
From the Beast root folder:
cd doc
./makeqbk.sh && b2
The output will be in doc/html.
Linux
From the Beast root folder:
sudo docker run -v $PWD:/opt/beast --rm beast-docs
The output will be in doc/html.