#include <iostream>
#include <websocketpp/config/asio_no_tls.hpp>
#include <websocketpp/server.hpp>
// 使用 websocketpp 库创建一个简单的 WebSocket 服务器示例
typedef websocketpp::server<websocketpp::config::asio> server;
typedef server::message_ptr message_ptr;
void on_message(server* s, websocketpp::connection_hdl hdl, message_ptr msg) {
std::cout << "收到消息: " << msg->get_payload() << std::endl;
// 回显收到的消息
s->send(hdl, msg->get_payload(), msg->get_opcode());
}
int main() {
// 创建服务器对象
server echo_server;
try {
// 初始化 Asio
echo_server.init_asio();
// 设置消息处理回调函数
echo_server.set_message_handler(bind(&on_message, &echo_server, ::_1, ::_2));
// 监听端口 9002
echo_server.listen(9002);
// 开始接受连接
echo_server.start_accept();
// 运行事件循环
echo_server.run();
} catch (const std::exception& e) {
std::cerr << "异常: " << e.what() << std::endl;
}
return 0;
}
引入库:
#include <websocketpp/config/asio_no_tls.hpp>
和 #include <websocketpp/server.hpp>
引入了 WebSocket++ 库的配置和服务器类。类型定义:
typedef websocketpp::server<websocketpp::config::asio> server;
定义了一个使用 ASIO 配置的 WebSocket 服务器类型。typedef server::message_ptr message_ptr;
定义了一个消息指针类型,用于处理接收到的消息。消息处理函数:
void on_message(server* s, websocketpp::connection_hdl hdl, message_ptr msg)
是一个回调函数,当服务器接收到消息时会被调用。它会打印接收到的消息内容,并将相同的消息回显给客户端。主函数:
这个示例代码展示了如何使用 WebSocket++ 库创建一个简单的 WebSocket 服务器,该服务器可以接收来自客户端的消息并将相同的消息回显回去。
上一篇:c++ 协程
下一篇:c和c++
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站