<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="">记录</string>
    <string name="">由于读取数据的调用可能返回数量不等的字节，因此读取数据的调用接口需要一个满足 __DynamicBuffer__ 要求的对象。该概念基于 __streambuf__ 建模。</string>
    <string name="">该实现不执行消息的排队或缓冲操作。如果需要这些功能，应由调用方提供。这种设计的影响是，库用户可以完全控制存储数据的分配策略，以及底层 TCP/IP 连接上读写两侧的背压管理。</string>
    <string name="">异步操作类型</string>
    <string name="">所有函数都提供异步版本。</string>
    <string name="">对异步发起函数的调用支持 Boost.Asio 作者开发的可扩展异步模型，允许使用传统的完成处理器、有栈或无栈协程，甚至 future：</string>
    <string name="">库附带的示例程序展示了 WebSocket 流操作在所有异步变体中的用法。</string>
    <string name="">I/O 上下文对象</string>
    <string name="">与底层流关联的 __io_context__ 的创建和操作由调用方负责，允许采用任何实现策略，包括在无线程环境中不需要线程的策略。Beast WebSocket 本身不使用也不要求线程。</string>
    <string name="">线程安全性</string>
    <string name="">与普通的 Asio 套接字类似，[link beast.ref.boost__beast__websocket__stream stream] 不是线程安全的。调用方需要按照 Asio 文档的要求，使用隐式或显式的串行器来同步套接字操作。WebSocket 流的异步接口支持以下各类操作同时各有一个处于活动状态：</string>
    <string name="">* [link beast.ref.boost__beast__websocket__stream.async_read `async_read`] or [link beast.ref.boost__beast__websocket__stream.async_read_some `async_read_some`]\n* [link beast.ref.boost__beast__websocket__stream.async_write `async_write`] or [link beast.ref.boost__beast__websocket__stream.async_write_some `async_write_some`]\n* [link beast.ref.boost__beast__websocket__stream.async_ping `async_ping`] or [link beast.ref.boost__beast__websocket__stream.async_pong `async_pong`]\n* [link beast.ref.boost__beast__websocket__stream.async_close `async_close`]</string>
    <string name="">例如，以下代码会导致未定义行为，因为程序试图同时执行两个读取操作：</string>
    <string name="">然而，以下代码是正确的：</string>
    <string name="">实现使用组合异步操作。虽然某些操作可能同时涉及读取和写入，但内部会协调这些行为，确保底层流安全运行。因此，即使有用户发起的异步写入操作正在进行，异步读取操作也能正常响应收到的 ping 帧。</string>
</resources>
