跳转至

ev-drogon-coroutine-websocket-003

字段 值
项目 drogonframework/drogon
固定 commit 3aae769cc405
路径 lib/inc/drogon/WebSocketController.h
行段 L186-L193
特性 协程
许可证 MIT
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-25
测试代码 否
发现方式 tree-sitter

用法

把回调式 WebSocket 事件适配成 Task<>,在 lambda 内 co_await 协程处理器

为什么典型

WebSocket 接口本身是回调风格;框架用 async_run 启动一个 Task<> 协程桥接旧接口,让业务侧可以写 handleNewMessageCoro 这样的协程函数而不改变公共 API。

摘录

        drogon::async_run([objPtr,
                           conn,
                           message = std::move(message),
                           type]() mutable -> Task<> {
            co_await objPtr->handleNewMessageCoro(conn,
                                                  std::move(message),
                                                  type);
        });

备注

生产路径;lambda 捕获消息并按值移动进协程帧,展示回调到协程的适配边界。

查看固定 commit 源码 · 返回证据索引