在c++下搭建websocket服务器
创始人
2025-05-28 02:36:24
0

记录并分享一下在c++下搭建websocket服务器,并实现与浏览器js的通信过程

1、下载websocketpp库
websocketpp是一个c++的websocket库,github地址为:https://github.com/zaphoyd/websocketpp/
其使用文档可以参考http://docs.websocketpp.org/。

下载解压后得到一下目录结构,其中websocketpp就是我们所要用到的库文件,examples下有一些websocket的基本使用案例。


2、下载并编译Boost库
下载Boost库  并按照下列链接boost全平台编译方法_hursing的博客-CSDN博客_boost编译进行编译

3、配置vs项目
就是在配置boost项目上卡了博主很久,因而才有意写这个博客。boost与websocketpp两个库都是hpp的源码,不需要太多的配置,只需要在附加包含目录里引入两个路径即可(确保include可以正常导入库文件)。一定要切记:boost要最先导入,否则,会有各种莫名其妙的报错。

 4、搭建C++websocket服务器
代码来自websocketpp-master\examples\echo_server项目中,此外examples还包含了各种server与client的案例。这里以最基本的echo_server为例。代码编写完后,可以直接点运行。

#include
 
#include
 
#include
 
typedef websocketpp::server server;
 
using websocketpp::lib::placeholders::_1;
using websocketpp::lib::placeholders::_2;
using websocketpp::lib::bind;
 
// pull out the type of messages sent by our config
typedef server::message_ptr message_ptr;
 
// Define a callback to handle incoming messages
void on_message(server* s, websocketpp::connection_hdl hdl, message_ptr msg) {
    std::string cmd = msg->get_payload();
    std::string res = "fu wu qi de xin xi! \" ";
 
    std::cout << "on_message called with hdl: " << hdl.lock().get()
              << " and message: " << msg->get_payload()
              << std::endl;
 
    // check for a special command to instruct the server to stop listening so
    // it can be cleanly exited.
    if (msg->get_payload() == "stop-listening") {
        s->stop_listening();
        return;
    }
 
    try {
        s->send(hdl, res, msg->get_opcode());
    } catch (websocketpp::exception const & e) {
        std::cout << "Echo failed because: "
                  << "(" << e.what() << ")" << std::endl;
    }
}
 
int main() {
    // Create a server endpoint
    server echo_server;
 
    try {
        // Set logging settings
        echo_server.set_access_channels(websocketpp::log::alevel::all);
        echo_server.clear_access_channels(websocketpp::log::alevel::frame_payload);
 
        // Initialize Asio
        echo_server.init_asio();
 
        // Register our message handler
        echo_server.set_message_handler(bind(&on_message,&echo_server,::_1,::_2));
 
        // Listen on port 9002
        echo_server.listen(9002);
 
        // Start the server accept loop
        echo_server.start_accept();
 
        // Start the ASIO io_service run loop
        echo_server.run();
    } catch (websocketpp::exception const & e) {
        std::cout << e.what() << std::endl;
    } catch (...) {
        std::cout << "other exception" << std::endl;
    }
}
5、搭建浏览器js客户端
这里只实现最简单的页面,实现与服务器的websocket通信。一定要记得下载jquery库,任意版本都可以。







输出:


6、进行通信
客户端与服务器的通信结果如下所示 


————————————————
版权声明:本文为CSDN博主「万里鹏程转瞬至」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a486259/article/details/124888325

相关内容

热门资讯

婚礼上的煽情祝福语 婚礼上的煽情祝福语  在现实生活或工作学习中,大家都用到过祝福语吧,祝福语有助于人与人之间感情的增进...
鼠年新年贺词 鼠年新年贺词(15篇)  在平日的学习、工作和生活里,大家最不陌生的就是贺词了吧,贺词是表示对主人的...
最新清明节祝福朋友圈说说 最新清明节祝福朋友圈说说大全(通用60句)  远山隐在云雾里,近树笼在孤烟前,小桥流水,愁鸦悲啼,雨...
送花的生日祝福语 送花的生日祝福语(精选175句)  在生活、工作和学习中,许多人都写过祝福语吧,祝福语的种类很多,可...
表达春节快乐的祝福语短信 精选表达春节快乐的祝福语短信大合集52条  张灯结彩过大年,万事齐备春节晚。千万里程回故土,只为团圆...
母亲节快乐的祝福语QQ 母亲节快乐的祝福语QQ集锦66句  我将母亲节的问候转给你,希望你收到后多多转发,让这份真诚祝愿永不...
给小孩子的新年快乐祝福语 给小孩子的新年快乐祝福语  在日常的学习、工作、生活中,大家都有写祝福语的经历,对祝福语很是熟悉吧,...
元宵节祝福语短信 元宵节祝福语短信23句  世界上最甜的是你煮的元宵。世界上最美的事和你一起观赏的灿烂烟花和皎洁的月亮...
对医师节的祝福语 对医师节的祝福语(精选55句)  在平凡的学习、工作、生活中,大家都尝试过写祝福语吧,祝福语有助于促...
快乐圣诞节英文祝福语 快乐圣诞节英文祝福语  圣诞雪舞着浪漫的气息,传递着节日的温馨;圣诞树挂着美丽的问。接下来小编整理了...
情人节优美祝福语短信 精选情人节优美祝福语短信锦集38条  时间再走,因为缘在寻找,眼睛再望,因为心在寻找,双手再牵,因为...
退休的祝福语 关于退休的祝福语集锦  在平平淡淡的日常中,大家都有写祝福语的经历,对祝福语很是熟悉吧,根据祝愿的对...
5.1劳动节祝福语短信 5.1劳动节祝福语短信大集合37句  劳动劳动劳动劳动劳动劳动劳动劳动劳动劳动劳动劳动再劳动!别怪我...
七月七七夕祝福语短信 七月七七夕祝福语短信合集18句  天上牛郎织女来相会,地下多情人儿共祈爱情永恒不渝。七夕情人节快乐!...
温馨劳动节祝福语短信 2020年温馨劳动节祝福语短信汇编24条  吃饭动动口,穿衣动动手。不思懒与惰,吃穿不用愁。劳动要带...
群发端午节祝福语QQ 群发端午节祝福语QQ集合37句  端午节到,提前送你几个粽子。祝你心情"粽"是好,工作"粽"是顺,财...
好朋友结婚的祝福语 好朋友结婚的祝福语15篇  在日复一日的学习、工作或生活中,大家都用到过祝福语吧,祝福语是人们用语言...
暖心春节祝福语短信 2022年精选暖心春节祝福语短信锦集58句  在春节里,我来拜早年,祝愿:工作舒心,薪水合心,朋友知...
简短的新年贺词祝福语 2021年简短的新年贺词祝福语集合38句  祝你在新的一年里:事业正当午,身体壮如牛,金钱不胜数,干...
11.11光棍节祝福语短信 2020年11.11光棍节祝福语短信集锦27句  独自走在冷冷的夜,表面平淡内心惨烈[20XX]光棍...