websocketpp 服务器端禁止合并send ,要如何处理
时间: 2024-03-09 16:51:39 浏览: 59
如果你想在使用 WebSocketpp 作为服务器端框架时禁止合并 send 操作,可以通过修改 WebSocketpp 的源码来实现。具体的做法如下:
1. 打开 `websocketpp::transport::asio::endpoint.hpp` 文件,找到以下代码块:
```c++
// These functions are used internally to send messages across the wire
void send(const void * buf, size_t len, lib::error_code & ec) {
m_socket.send(lib::buffer(static_cast<const char *>(buf),len),0,ec);
}
void send(const message_ptr& msg, lib::error_code & ec) {
lib::asio::const_buffer b = msg->get_raw_payload();
m_socket.send(b,msg->get_opcode(),ec);
}
```
2. 将其中的 `m_socket.send` 函数调用中的第三个参数(即 `flags` 参数)设为 0,即:
```c++
// These functions are used internally to send messages across the wire
void send(const void * buf, size_t len, lib::error_code & ec) {
m_socket.send(lib::buffer(static_cast<const char *>(buf),len),0,ec);
}
void send(const message_ptr& msg, lib::error_code & ec) {
lib::asio::const_buffer b = msg->get_raw_payload();
m_socket.send(b,msg->get_opcode(),0,ec); // 将 flags 参数设为 0
}
```
这样就可以禁止 WebSocketpp 的服务器端合并 send 操作了。
阅读全文