[/
    Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)

    Distributed under the Boost Software License, Version 1.0. (See accompanying
    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    Official repository: https://github.com/boostorg/beast
]

[section Using WebSocket]

The WebSocket Protocol enables two-way communication between a client
running untrusted code in a controlled environment to a remote host that has
opted-in to communications from that code. The protocol consists of an opening
handshake followed by basic message framing, layered over TCP.  The goal of
this technology is to provide a mechanism for browser-based applications
needing two-way communication with servers without relying on opening multiple
HTTP connections.

Beast provides developers with a robust WebSocket implementation built on
Boost.Asio with a consistent asynchronous model using a modern C++ approach.

[note
    This documentation assumes familiarity with __Asio__ and
    the protocol specification described in __rfc6455__.
    Sample code and identifiers appearing in this section is written
    as if these declarations are in effect:

    [ws_snippet_1]
]

[include 06_websocket/01_streams.qbk]
[include 06_websocket/02_connect.qbk]
[include 06_websocket/03_client.qbk]
[include 06_websocket/04_server.qbk]
[include 06_websocket/05_messages.qbk]
[include 06_websocket/06_control.qbk]
[include 06_websocket/07_teardown.qbk]
[include 06_websocket/08_notes.qbk]

[endsect]
