使用 C++ 快速搭建 WebSocket 服务
WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实时应用开发。C++ 可以通过库如 Boost.Beast 或 WebSocket++ 快速实现 WebSocket 服务端。
环境准备
安装 Boost.Beast 和 Boost.Asio:
sudo apt-get install libboost-all-dev
服务端代码示例
以下是一个基于 Boost.Beast 的简单 WebSocket 服务端实现:
#include <boost/beast.hpp>
#include <boost/asio.hpp>
#include <iostream>
namespace beast = boost::beast;
namespace http = beast::http;
namespace websocket = beast::websocket;
namespace net = boost::asio;
using tcp = net::ip::tcp;
void handle_session(websocket::stream<tcp::socket> ws) {
try {
ws.accept(); // 完成 WebSocket 握手
beast::flat_buffer buffer;
while (true) {
ws.read(buffer); // 读取客户端消息
auto msg = beast::buffers_to_string(buffer.data());
std::cout << "Received: " << msg << std::endl;
ws.text(ws.got_text());
ws.write(buffer.data()); // 回显消息
buffer.consume(buffer.size());
}
} catch (beast::system_error const& se) {
if (se.code() != websocket::error::closed) {
std::cerr << "Error: " << se.what() << std::endl;
}
}
}
int main() {
net::io_context ioc;
tcp::acceptor acceptor(ioc, {tcp::v4(), 8080});
while
15万+

被折叠的 条评论
为什么被折叠?



