<?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="714e5c3acbb4964e" weblate-flags="read-only">
        <source>Control Frames</source>
        <target state="translated">Control Frames</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="21bedd021677b320" weblate-flags="read-only">
        <source>Control frames are small (less than 128 bytes) messages entirely contained in an individual WebSocket frame. They may be sent at any time by either peer on an established connection, and can appear in between continuation frames for a message. There are three types of control frames: ping, pong, and close.</source>
        <target state="translated">Control frames are small (less than 128 bytes) messages entirely contained in an individual WebSocket frame. They may be sent at any time by either peer on an established connection, and can appear in between continuation frames for a message. There are three types of control frames: ping, pong, and close.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">12</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="70248e5926158b84" weblate-flags="read-only">
        <source>A sent ping indicates a request that the sender wants to receive a pong. A pong is a response to a ping. Pongs may be sent unsolicited, at any time. One use for an unsolicited pong is to inform the remote peer that the session is still active after a long period of inactivity. A close frame indicates that the remote peer wishes to close the WebSocket connection. The connection is considered gracefully closed when each side has sent and received a close frame.</source>
        <target state="translated">A sent ping indicates a request that the sender wants to receive a pong. A pong is a response to a ping. Pongs may be sent unsolicited, at any time. One use for an unsolicited pong is to inform the remote peer that the session is still active after a long period of inactivity. A close frame indicates that the remote peer wishes to close the WebSocket connection. The connection is considered gracefully closed when each side has sent and received a close frame.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">18</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="4afc58ecfb71644e" weblate-flags="read-only">
        <source>During read operations, Beast automatically reads and processes control frames. If a control callback is registered, the callback is notified of the incoming control frame. The implementation will respond to pings automatically. The receipt of a close frame initiates the WebSocket close procedure, eventually resulting in the error code [link beast.ref.boost__beast__websocket__error `error::closed`] being delivered to the caller in a subsequent read operation, assuming no other error takes place.</source>
        <target state="translated">During read operations, Beast automatically reads and processes control frames. If a control callback is registered, the callback is notified of the incoming control frame. The implementation will respond to pings automatically. The receipt of a close frame initiates the WebSocket close procedure, eventually resulting in the error code [link beast.ref.boost__beast__websocket__error `error::closed`] being delivered to the caller in a subsequent read operation, assuming no other error takes place.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">26</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="46f7f08cf467d5e4" weblate-flags="read-only">
        <source>A consequence of this automatic behavior is that caller-initiated read operations can cause socket writes. However, these writes will not compete with caller-initiated write operations. For the purposes of correctness with respect to the stream invariants, caller-initiated read operations still only count as a read. This means that callers can have a simultaneously active read, write, and ping/pong operation in progress, while the implementation also automatically handles control frames.</source>
        <target state="translated">A consequence of this automatic behavior is that caller-initiated read operations can cause socket writes. However, these writes will not compete with caller-initiated write operations. For the purposes of correctness with respect to the stream invariants, caller-initiated read operations still only count as a read. This means that callers can have a simultaneously active read, write, and ping/pong operation in progress, while the implementation also automatically handles control frames.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">35</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="1ab07cc942856530" weblate-flags="read-only">
        <source>Control Callback</source>
        <target state="translated">Control Callback</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">44</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="26a9d3d400ce1a0b" weblate-flags="read-only">
        <source>Ping, pong, and close messages are control frames which may be sent at any time by either peer on an established WebSocket connection. They are sent using the functions [link beast.ref.boost__beast__websocket__stream.ping `ping`], [link beast.ref.boost__beast__websocket__stream.pong `pong`]. and [link beast.ref.boost__beast__websocket__stream.close `close`]. To be notified of control frames, callers may register a ['control callback] using [link beast.ref.boost__beast__websocket__stream.control_callback `control_callback`]. The object provided with this option should be callable with the following signature:</source>
        <target state="translated">Ping, pong, and close messages are control frames which may be sent at any time by either peer on an established WebSocket connection. They are sent using the functions [link beast.ref.boost__beast__websocket__stream.ping `ping`], [link beast.ref.boost__beast__websocket__stream.pong `pong`]. and [link beast.ref.boost__beast__websocket__stream.close `close`]. To be notified of control frames, callers may register a ['control callback] using [link beast.ref.boost__beast__websocket__stream.control_callback `control_callback`]. The object provided with this option should be callable with the following signature:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">46</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="aa2c1c0220f20484" weblate-flags="read-only">
        <source>When a control callback is registered, it will be invoked for all pings, pongs, and close frames received through either synchronous read functions or asynchronous read functions. The type of frame and payload text are passed as parameters to the control callback. If the frame is a close frame, the close reason may be obtained by calling [link beast.ref.boost__beast__websocket__stream.reason `reason`].</source>
        <target state="translated">When a control callback is registered, it will be invoked for all pings, pongs, and close frames received through either synchronous read functions or asynchronous read functions. The type of frame and payload text are passed as parameters to the control callback. If the frame is a close frame, the close reason may be obtained by calling [link beast.ref.boost__beast__websocket__stream.reason `reason`].</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">61</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="52d3c0e8d85ca5a3" weblate-flags="read-only">
        <source>Unlike regular completion handlers used in calls to asynchronous initiation functions, the control callback only needs to be set once. The callback is not reset after being called. The same callback is used for both synchronous and asynchronous reads. The callback is passive; in order to be called, a stream read operation must be active.</source>
        <target state="translated">Unlike regular completion handlers used in calls to asynchronous initiation functions, the control callback only needs to be set once. The callback is not reset after being called. The same callback is used for both synchronous and asynchronous reads. The callback is passive; in order to be called, a stream read operation must be active.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">68</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="0f9457f281583707" weblate-flags="read-only">
        <source>When an asynchronous read function receives a control frame, the</source>
        <target state="translated">When an asynchronous read function receives a control frame, the</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">75</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="99ebf47ab932498a" weblate-flags="read-only">
        <source>Close Frames</source>
        <target state="translated">Close Frames</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">81</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="5f5df5bfa79742a6" weblate-flags="read-only">
        <source>The WebSocket protocol defines a procedure and control message for initiating a close of the session. In this procedure, a host requests the close by sending a [@https://tools.ietf.org/html/rfc6455#section-5.5.1 ['close frame]]. To request a close use a close function such as [link beast.ref.boost__beast__websocket__stream.close.overload2 `close`] or [link beast.ref.boost__beast__websocket__stream.async_close `async_close`]:</source>
        <target state="translated">The WebSocket protocol defines a procedure and control message for initiating a close of the session. In this procedure, a host requests the close by sending a [@https://tools.ietf.org/html/rfc6455#section-5.5.1 ['close frame]]. To request a close use a close function such as [link beast.ref.boost__beast__websocket__stream.close.overload2 `close`] or [link beast.ref.boost__beast__websocket__stream.async_close `async_close`]:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">83</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="83381f7fd5f15d7d" weblate-flags="read-only">
        <source>The close function will send a close frame, read and discard incoming message data until receiving a close frame, and then shut down the underlying connection before returning.</source>
        <target state="translated">The close function will send a close frame, read and discard incoming message data until receiving a close frame, and then shut down the underlying connection before returning.</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="d169fc646b7a078b" weblate-flags="read-only">
        <source>When a close frame is received by during a read operation, the implementation will automatically respond with a close frame and then shut down the underlying connection before returning. In this case, the read operation will complete with the code [link beast.ref.boost__beast__websocket__error `error::closed`]. This indicates to the caller that the connection has been closed cleanly.</source>
        <target state="translated">When a close frame is received by during a read operation, the implementation will automatically respond with a close frame and then shut down the underlying connection before returning. In this case, the read operation will complete with the code [link beast.ref.boost__beast__websocket__error `error::closed`]. This indicates to the caller that the connection has been closed cleanly.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">97</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="b3f2b3354f6d9e23" weblate-flags="read-only">
        <source>To receive the</source>
        <target state="translated">To receive the</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">105</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="0c6cd2ab513ace05" weblate-flags="read-only">
        <source>Auto-fragment</source>
        <target state="translated">Auto-fragment</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">110</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="356a69834a8cac7e" weblate-flags="read-only">
        <source>To ensure timely delivery of control frames, large outgoing messages can be broken up into smaller sized frames. The automatic fragment option turns on this feature, and the write buffer size option determines the maximum size of the fragments:</source>
        <target state="translated">To ensure timely delivery of control frames, large outgoing messages can be broken up into smaller sized frames. The automatic fragment option turns on this feature, and the write buffer size option determines the maximum size of the fragments:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">112</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
    </body>
  </file>
</xliff>
