Open KenForever1 opened 3 years ago
使用lambda作为callback。在lambda里capture session。比如:
session->setDataCallback([session](brynet::base::BasePacketReader&) {
});
感谢,如果直接绑定callback函数就拿不到session,如果采用lambda函数捕获session,然后调用回调函数就可以拿到了。比如:
session->setDataCallback<brynet::net::TcpConnection::DataCallback>(
[session, this](brynet::base::BasePacketReader &reader) {
dataCallBackFuncWithSession(session, reader);
});
@kkt 也可以在 Listener的AddEnterCallback 里构造你业务层的对象(看起来就像你dataCallBackFuncWithSession函数的类型),然后直接把session存进去。就没必要在 setDataCallback 里捕获session了。
using DataCallback = std::function<void(brynet::base::BasePacketReader&)>;
中只能获得数据,请问怎么同时获得sender的session呢