msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified Han script) (Boost Beast Translation "
"(zh_Hans))\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-07 08:29+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese (Simplified Han script) <https://"
"insights.cppalliance.org/weblate/projects/boost-beast-documentation-zh_Hans/"
"doc-qbk-06-websocket-05-control-frames-qbk/zh_Hans/>\n"
"Language: zh_Hans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 2026.5\n"

#. type: section title
#: 10
#, fuzzy
msgid "Control Frames"
msgstr "Control Frames"

#. type: paragraph
#: 12
#, fuzzy
msgid ""
"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."
msgstr ""
"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."

#. type: paragraph
#: 18
#, fuzzy
msgid ""
"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."
msgstr ""
"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."

#. type: paragraph
#: 26
#, fuzzy
msgid ""
"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."
msgstr ""
"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."

#. type: paragraph
#: 35
#, fuzzy
msgid ""
"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."
msgstr ""
"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."

#. type: heading
#: 44
#, fuzzy
msgid "Control Callback"
msgstr "Control Callback"

#. type: paragraph
#: 46
#, fuzzy
msgid ""
"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:"
msgstr ""
"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:"

#. type: paragraph
#: 61
#, fuzzy
msgid ""
"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`]."
msgstr ""
"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`]."

#. type: paragraph
#: 68
#, fuzzy
msgid ""
"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."
msgstr ""
"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."

#. type: paragraph
#: 75
#, fuzzy
msgid "When an asynchronous read function receives a control frame, the"
msgstr "When an asynchronous read function receives a control frame, the"

#. type: heading
#: 81
#, fuzzy
msgid "Close Frames"
msgstr "Close Frames"

#. type: paragraph
#: 83
#, fuzzy
msgid ""
"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`]:"
msgstr ""
"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`]:"

#. type: paragraph
#: 93
#, fuzzy
msgid ""
"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."
msgstr ""
"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."

#. type: paragraph
#: 97
#, fuzzy
msgid ""
"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."
msgstr ""
"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."

#. type: paragraph
#: 105
#, fuzzy
msgid "To receive the"
msgstr "To receive the"

#. type: heading
#: 110
#, fuzzy
msgid "Auto-fragment"
msgstr "Auto-fragment"

#. type: paragraph
#: 112
#, fuzzy
msgid ""
"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:"
msgstr ""
"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:"
