当前位置: 首页 > news >正文

simple websocket用法

项目地址在:https://gitlab.com/eidheim/Simple-Web-Server
我调试通过的代码如下:

#include "server_ws.hpp"using namespace std;using WsServer = SimpleWeb::SocketServer<SimpleWeb::WS>;void run_simple_socket_server(unsigned short port)
{WsServer server;server.config.port = port;auto &echo = server.endpoint["^/echo/?$"];echo.on_message = [](shared_ptr<WsServer::Connection> connection, shared_ptr<WsServer::Message> message){auto message_str = message->string();cout << "Server: Message received: \"" << message_str << "\" from " << connection.get() << endl;cout << "Server: Sending message \"" << message_str << "\" to " << connection.get() << endl;auto send_stream = make_shared<WsServer::SendStream>();*send_stream << message_str;connection->send(send_stream, [](const SimpleWeb::error_code &ec){if (ec) {cout << "Server: Error sending message. " <<"Error: " << ec << ", error message: " << ec.message() << endl;} });};echo.on_open = [](shared_ptr<WsServer::Connection> connection){cout << "Server: Opened connection " << connection.get() << endl;};echo.on_close = [](shared_ptr<WsServer::Connection> connection, int status, const string & /*reason*/){cout << "Server: Closed connection " << connection.get() << " with status code " << status << endl;};echo.on_error = [](shared_ptr<WsServer::Connection> connection, const SimpleWeb::error_code &ec){cout << "Server: Error in connection " << connection.get() << ". "<< "Error: " << ec << ", error message: " << ec.message() << endl;};thread server_thread([&server](){ server.start(); });server_thread.join();
}
int main(int argc, char const *argv[])
{unsigned short port = 10088;cout << "Server port: " << port << endl;run_simple_socket_server(port);return 0;
}

Makefile如下:

.PHONY : cleanROOTDIR = ../..
INCLUDE = -I../$(ROOTDIR)/lib/inc -I$(ROOTDIR)/public -I$(ROOTDIR)/public/simple_websocket_server
LDLIBS = -lpthread -lssl -lcrypto -lboost_system
runlibs = -Wl,-rpath=/web/libdst = arm
ifeq ($(dst),arm)
CXX = aarch64-linux-gnu-g++ --std=c++11
LDLIBS += -L../$(ROOTDIR)/lib/so.aarch64
else
CXX = g++ --std=c++11
LDLIBS += -L../$(ROOTDIR)/lib/so.x86_64
endifbin = ../../bin/simple_websocketsrc = $(wildcard *.cpp)
obj = $(patsubst %.cpp,%.o, $(src))$(bin) : $(obj)$(CXX) $(runlibs) $^ -o $@ $(LDLIBS)$(obj): %.o : %.cpp$(CXX) -g -c $(INCLUDE) $< -o $@clean :rm -f $(obj) $(bin)
http://www.dtcms.com/a/460712.html

相关文章:

  • 主流网络协议--助记
  • Python网络编程——UDP编程
  • 个人网站的设计流程seo资源网
  • 绿泡守护者:禁止微信更新
  • 服务端架构演进概述与核心技术概念解析
  • 美颜滤镜SDK:社交产品破局与增长的核心引擎
  • 三维模型数据结构与存储方式解析
  • 可以使用多少列创建索引?
  • 技术分享|重组单克隆抗体制备全流程:从抗体发现到纳米抗体应用,关键步骤与优势解析
  • 缝合怪deque如何综合list和vector实现及仿函数模板如何优化priority_queue实现
  • H5响应式网站示例企业网app下载
  • cmd什么命令可以知道本机到目标机的ip节点
  • C++(day6)
  • MySQL InnoDB存储引擎CheckPoint技术底层实现原理详细介绍
  • HikariCP与Spring Boot集成使用指南
  • java-代码随想录第23天|39. 组合总和、40.组合总和II、131.分割回文串
  • 【LangChain】P18 LangChain 之 Chain 深度解析(三):基于 LCEL 语法的数据库与文档处理新型 Chain
  • 2.0 Labview自定义控件中的队列引用句柄从哪拖来?
  • 【LabVIEW实用开发】--- LabVIEW调用python脚本
  • 碰一碰系统源码搭建与发视频、发文案和写好评定制化开发:支持OEM
  • 安徽建设工程信息网站简单的个人网页制作html
  • iBizModel 全文检索体系(PSSYSSEARCHSCHEME)模型详解
  • Django REST Framework `Request` 对象
  • 易班班级网站建设展示PPT公司网站建设怎么做
  • 易讯网站建设凤翔网站制作
  • 湘潭找工作网站如何将wordpress上传
  • 做企业网站注意些啥太原网络营销
  • Redis 缓存与数据库谁先更新?
  • 网站备案要营业执照原件吗怎么做一个小程序app
  • 网站里的横幅广告怎么做商城网站 html模板