gpt4 book ai didi

c++ - 在没有回调的情况下调用升压函数

转载 作者:行者123 更新时间:2023-11-30 03:18:32 25 4
gpt4 key购买 nike

我正在使用 boost-beast 库进行 websocket 连接。可以引用this example为了理解正在发生的事情。我使用了相同的示例,但更改了一些内容:

  • on_handshake(beast::error_code ec) 分成三个函数 A(beast::error_code ec),B(beast::error_code ec)C(beast::error_code ec)

  • B()发送二进制数据,A()C()发送文本。

  • A() 调用 B() 作为回调,B() 调用 C() 作为回调。

现在我被困在我想这样做的地方:

void session::A(beast::error_code ec) {
if (ec)
return (fail(ec, "handshake"));

ws_.async_write(net::buffer(SOMETEXT),bind(&session::B, shared_from_this(), placeholders::_1));

}
void session::B(beast::error_code ec) {
if (ec)
return (fail(ec, "A_FAILED"));

if(condition1) {
ws_.binary(true);
ws_.async_write(net::buffer(SOMEBINARY),bind(&session::C, shared_from_this(), placeholders::_1));
} else {
session::on_write(ec,<WHAT SHOULD I WRITE HERE>);
}

}
void session::C(beast::error_code ec) {
if (ec)
return (fail(ec, "B_FAILED"));

ws_.binary(false);

ws_.async_write(net::buffer(SOMETEXT),bind(&session::on_write, shared_from_this(), placeholders::_1, placeholders::_2));

}

这是读取函数:

void
on_write(
beast::error_code ec,
std::size_t bytes_transferred)
{
boost::ignore_unused(bytes_transferred);

if(ec)
return fail(ec, "write");

// Read a message into our buffer
ws_.async_read(
buffer_,
std::bind(
&session::on_read,
shared_from_this(),
std::placeholders::_1,
std::placeholders::_2));
}

问题:- 请检查函数 B() 和我的问题。任何建议或答案表示赞赏。

最佳答案

您可以在参数中放入一个0并将其标记为未使用

例如session::on_write(ec, 0/* 字段未使用 */);

关于c++ - 在没有回调的情况下调用升压函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54644649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com