按安装与配置接入 C++20 应用。先启动服务端,再运行对应客户端。
二进制回显服务端
WebSocket 自行定义消息边界,不应传入 use_dgram 或 TCP 分隔符。服务端回复时保留接收到的文本或二进制类型。通过 arknet::arknet 接口目标,将本页服务端与客户端分别构建为可执行程序。先启动服务端,再在另一个终端运行客户端。在服务端终端按 Enter 停止服务端。
#include <iostream>
#include <string_view>
#include <arknet/websocket/ws_server.hpp>
int main()
{
arknet::ws_server server;
server.bind_recv([](auto& session, std::string_view bytes)
{
session->ws_stream().binary(session->ws_stream().got_binary());
session->async_send(bytes);
});
if (!server.start("127.0.0.1", 7001))
{
std::cerr << arknet::get_last_error().message() << '\n';
return 1;
}
std::cout << "WebSocket listening on ws://127.0.0.1:7001/echo\n";
std::cin.get();
server.stop();
}