<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" version="1.1">
  <file original="NoName" source-language="en" datatype="plaintext" target-language="en">
    <body>
      <trans-unit xml:space="preserve" approved="no" id="44f90dd7e06d8939" weblate-flags="read-only">
        <source>WebSocket</source>
        <target state="translated">WebSocket</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">10</context>
        </context-group>
        <note from="developer">type: section title</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="ed4b2d8de01ba686" weblate-flags="read-only">
        <source>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.</source>
        <target state="translated">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.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">14</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="4a59be2a9c9c9c21" weblate-flags="read-only">
        <source>Beast provides developers with a robust WebSocket implementation built on Boost.Asio with a consistent asynchronous model using a modern C++ approach.</source>
        <target state="translated">Beast provides developers with a robust WebSocket implementation built on Boost.Asio with a consistent asynchronous model using a modern C++ approach.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">22</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="38dc4e3b369ee942" weblate-flags="read-only">
        <source>This documentation assumes familiarity with __Asio__ and</source>
        <target state="translated">This documentation assumes familiarity with __Asio__ and</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">27</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="adcb51c22baef03d" weblate-flags="read-only">
        <source>Construction</source>
        <target state="translated">Construction</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">39</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="e1f42bee76877221" weblate-flags="read-only">
        <source>A WebSocket connection requires a stateful object, represented in Beast by a single class template [link beast.ref.boost__beast__websocket__stream `websocket::stream`]. The interface uses the layered stream model. A websocket stream object contains another stream object, called the "next layer", which it uses to perform I/O. Descriptions of each template parameter follow:</source>
        <target state="translated">A WebSocket connection requires a stateful object, represented in Beast by a single class template [link beast.ref.boost__beast__websocket__stream `websocket::stream`]. The interface uses the layered stream model. A websocket stream object contains another stream object, called the "next layer", which it uses to perform I/O. Descriptions of each template parameter follow:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">41</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="f0b2f2cbea74929d" weblate-flags="read-only">
        <source>WebSocket Stream Template Parameters</source>
        <target state="translated">WebSocket Stream Template Parameters</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table title</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="b4c4db868dbf643a" weblate-flags="read-only">
        <source>Name</source>
        <target state="translated">Name</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="f7f5c115cf553484" weblate-flags="read-only">
        <source>Description</source>
        <target state="translated">Description</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="8236d9678002b069" weblate-flags="read-only">
        <source>`NextLayer`</source>
        <target state="translated">`NextLayer`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="2f42812cfb6ab81d" weblate-flags="read-only">
        <source>The type of the next layer. An object of this type will be constructed and maintained for the lifetime of the stream. All reads and writes will go through the next layer. This type must meet the requirements of either __SyncStream__, __AsyncStream__, or both, depending on the style of I/O that is to be performed.</source>
        <target state="translated">The type of the next layer. An object of this type will be constructed and maintained for the lifetime of the stream. All reads and writes will go through the next layer. This type must meet the requirements of either __SyncStream__, __AsyncStream__, or both, depending on the style of I/O that is to be performed.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="16e2d0635dcc527f" weblate-flags="read-only">
        <source>`deflateSupported`</source>
        <target state="translated">`deflateSupported`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="be71cb34144c0167" weblate-flags="read-only">
        <source>When this value is `true`, the stream will support (but not require) the [@https://tools.ietf.org/html/rfc7692 permessage-deflate extension]. Whether or not the stream actually requests or accepts the extension during a handshake depends on a separate configurable option.

When the value is `false` the extension is disabled. Streams will never request the extension in the client role or accept a request for the extension in the server role. An additional benefit of disabling the extension is that compilation will be faster, and the resulting program executable will contain less code.</source>
        <target state="translated">When this value is `true`, the stream will support (but not require) the [@https://tools.ietf.org/html/rfc7692 permessage-deflate extension]. Whether or not the stream actually requests or accepts the extension during a handshake depends on a separate configurable option.

When the value is `false` the extension is disabled. Streams will never request the extension in the client role or accept a request for the extension in the server role. An additional benefit of disabling the extension is that compilation will be faster, and the resulting program executable will contain less code.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="e2d7e4d5c9eeb072" weblate-flags="read-only">
        <source>When a stream is constructed, any arguments provided to the constructor are forwarded to the next layer object's constructor. This declares a stream over a plain TCP/IP socket using an I/O context:</source>
        <target state="translated">When a stream is constructed, any arguments provided to the constructor are forwarded to the next layer object's constructor. This declares a stream over a plain TCP/IP socket using an I/O context:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">77</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="059fd7fa1a9c99d0" weblate-flags="read-only">
        <source>Websocket streams use their own protocol-specific timeout feature. When</source>
        <target state="translated">Websocket streams use their own protocol-specific timeout feature. When</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">84</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="126ef07a5e43c631" weblate-flags="read-only">
        <source>As with most I/O objects, a websocket stream is [*not thread-safe]. Undefined behavior results if two different threads access the object concurrently. For multi-threaded programs, the `tcp_stream` can be constructed from an executor, in this case a strand. The stream declared below will use a strand to invoke all completion handlers:</source>
        <target state="translated">As with most I/O objects, a websocket stream is [*not thread-safe]. Undefined behavior results if two different threads access the object concurrently. For multi-threaded programs, the `tcp_stream` can be constructed from an executor, in this case a strand. The stream declared below will use a strand to invoke all completion handlers:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">93</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="e1eda067d29a6ad6" weblate-flags="read-only">
        <source>If the next layer supports move-construction, then the websocket stream can be constructed from a moved-from object.</source>
        <target state="translated">If the next layer supports move-construction, then the websocket stream can be constructed from a moved-from object.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">101</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="e1947b7d6d2bf77d" weblate-flags="read-only">
        <source>The next layer may be accessed by calling [link beast.ref.boost__beast__websocket__stream.next_layer.overload1 `stream::next_layer`].</source>
        <target state="translated">The next layer may be accessed by calling [link beast.ref.boost__beast__websocket__stream.next_layer.overload1 `stream::next_layer`].</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">106</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="5a7f25b85519d0d0" weblate-flags="read-only">
        <source>Using SSL</source>
        <target state="translated">Using SSL</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">113</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="a932a18d156b67f5" weblate-flags="read-only">
        <source>To use WebSockets over SSL, use an instance of the __ssl_stream__ class template as the template type for the stream. The required __io_context__ and __ssl_context__ arguments are forwarded to the wrapped stream's constructor:</source>
        <target state="translated">To use WebSockets over SSL, use an instance of the __ssl_stream__ class template as the template type for the stream. The required __io_context__ and __ssl_context__ arguments are forwarded to the wrapped stream's constructor:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">115</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="430e9656313f6e99" weblate-flags="read-only">
        <source>Code which declares websocket stream objects using Asio SSL types</source>
        <target state="translated">Code which declares websocket stream objects using Asio SSL types</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">123</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="3d7945ef26c2c027" weblate-flags="read-only">
        <source>As before, the underlying SSL stream may be accessed by calling `next_layer`.</source>
        <target state="translated">As before, the underlying SSL stream may be accessed by calling `next_layer`.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">127</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="c2b520df3bc38270" weblate-flags="read-only">
        <source>With multi-layered streams such as the one declared above, accessing an individual layer can be cumbersome when using chained calls to `next_layer`. The function [link beast.ref.boost__beast__get_lowest_layer `get_lowest_layer`] returns the last stream in a stack of layers in a layered stream. Here we access the lowest layer to cancel all outstanding I/O.</source>
        <target state="translated">With multi-layered streams such as the one declared above, accessing an individual layer can be cumbersome when using chained calls to `next_layer`. The function [link beast.ref.boost__beast__get_lowest_layer `get_lowest_layer`] returns the last stream in a stack of layers in a layered stream. Here we access the lowest layer to cancel all outstanding I/O.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">131</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="99923d21d30664fb" weblate-flags="read-only">
        <source>Non-Blocking Mode</source>
        <target state="translated">Non-Blocking Mode</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">142</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="0f4da212d712f24e" weblate-flags="read-only">
        <source>Please note that websocket streams do not support non-blocking modes.</source>
        <target state="translated">Please note that websocket streams do not support non-blocking modes.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">144</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
    </body>
  </file>
</xliff>
