sio_socket, websocket的使用与封装
工程代码地址为:https://download.csdn.net/download/f110300641/10784562
简单的测试:
#include <iostream>
#include <thread>
#include <string>
#include <chrono>
#include "rapidjson/document.h"
#include <rapidjson/writer.h>
#include <rapidjson/stringbuffer.h>
#include <rapidjson/prettywriter.h>
#include "tg_client_mgr.h"
std::string login_json()
{
rapidjson::Document doc;
rapidjson::Document::AllocatorType& Allocator = doc.GetAllocator();
rapidjson::Value root( rapidjson::kObjectType );
rapidjson::Value child( rapidjson::kObjectType );
root.AddMember( "cmd", "login", Allocator );
child.AddMember( "user_name", "COLLECTOR", Allocator );
child.AddMember( "user_pass", "666666", Allocator );
root.AddMember( "data", child, Allocator );
rapidjson::StringBuffer sb;
rapidjson::Writer<rapidjson::StringBuffer> writer( sb );
root.Accept( writer );
return sb.GetString();
}
void callback_fun1(sio::message::ptr const& data)
{
std::cout << "callback_fun1 ";
if(sio::message::flag_object == data->get_flag())
{
auto key_value = data->get_map()["data"];
if(key_value && sio::message::flag_string == key_value->get_flag())
{
std::string strdata = key_value->get_string();
std::cout << "data=" << strdata.c_str() << std::endl;
}
}
}
void test()
{
std::vector<std::string> uri_list;
uri_list.push_back( "ws://192.168.0.105:8086" );
std::map<std::string, tg_client::callback_type> msg_fun_map;
msg_fun_map.insert( std::make_pair( "req_all_data", callback_fun1 ) );
g_client_mgr.build( uri_list, msg_fun_map );
//连接服务器
if ( !g_client_mgr.connect())
{
std::cout << "连接服务器失败" << std::endl;
return;
}
//登录
g_client_mgr.login(login_json());
//通过URI获得某个websocket客户端
auto pClient = g_client_mgr[ uri_list[0] ];
if ( pClient)
{
std::cout << "uri=" << pClient->get_uri() << std::endl;
}
}
int main()
{
test();
while ( true )
{
std::this_thread::sleep_for( std::chrono::milliseconds( 100 ) );
}
return 0;
}
其中sio_socket的git地址为:https://github.com/socketio/socket.io-client-cpp
sio_socket, websocket的使用与封装相关推荐
- 充分利用 cpu_如何充分利用云
充分利用 cpu Over the years, building and testing software that runs on physical servers has become the ...
- websocket的封装和使用
websocket概念: 因为 HTTP 协议有一个缺陷:通信只能由客户端发起.务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种. 封装: ...
- HTML5 WebSocket之HelloWorld
原文http://fallenlord.blogbus.com/logs/110768932.html 方案 要实现一个WebSocket有很多方案,客户端方面可以用原生的WebSocket对象,也可 ...
- 基于WebSocket协议的iOS端即时聊天
好好好久没有在cnblogs上写博客,不过在这里写的最早的一篇博客的时间戳,真是时间久远啊,那时候还没毕业.不在cnblogs的期间,在github pages.简书上写过博客,github page ...
- htmlcss实例小项目_小程序websocket心跳库——websocket-heartbeat-miniprogram
前言 在16年的时候因为项目接触到websocket,而后对心跳重连做了一次总结,写了篇博客,而后18年对之前github上的demo代码进行了再次开发和开源,最终封装成库.如下: 博客:https: ...
- 浅淡 RxJS WebSocket
引言 中后台仪表盘是一个非常复杂,特别是当需要全面屏运用时,数据的实时性需求非常高.WebSocket 不管在什么环境中使用其实都是非常简单,各现代浏览器实现标准都很统一,而且接口也足够简单. 即便是 ...
- 补习系列(20)-大话 WebSocket 与 尬聊的实现
目录 一.聊聊 WebSocket 二.Stomp 是个什么鬼 三.SpringBoot 整合 WebSocket A. 引入依赖 B. WebSocket 配置 C. 控制器 D. 前端实现 四.参 ...
- 009 - CSS预处理器less sass SAML SSO 单点登录 websocket socket.io
009_css预处理器less sass saml sso 单点登录 websocket## less 安装: npm install -g less 命令: lessc style.less sty ...
- 【Node.js】论一个低配版Web实时通信库是如何实现的1( WebSocket篇)
引论 simple-socket是我写的一个"低配版"的Web实时通信工具(相对于Socket.io),在参考了相关源码和资料的基础上,实现了前后端实时互通的基本功能 选用了Web ...
最新文章
- jquery操作select取值赋值与设置选中[转]
- 一起谈.NET技术,Visual Studio 2010 中的代码约定设置
- Ajax+Node.js前后端交互最佳入门实践(05)
- ArcGIS License Manager 相关总结
- Android系统中的进程管理:内存的回收
- 轻松精通数据库管理之道——运维巡检之四(数据库备份)
- SAP License:合理的机制才能让系统效率最大
- 【李宏毅2020 ML/DL】P26-33 Explainable ML
- linux编译后 空间不足,Linux系统/run/systemd空间不足问题解决
- cortex系列处理器排行_vivoX60系列即将首发5nm Exynos 1080芯片
- 【Docker】 命令速查
- iOS 整理iOS9适配中出现的坑
- Word表格之VBA知识
- 清华大学计算机直硕生,推免数据 | 清华大学计算机系三大巨变——直硕生减半,本校增多,211增多...
- 法大大“实槌”获评《互联网周刊》“2019年度特别创新TOP50”
- 「首席架构师推荐」数值分析软件列表
- 插件:Could not find library corresponding to plugin……
- 什么叫UG编程?UG编程是干什么的?
- 使用flash id不拆盘查看SSD颗粒
- PreferenceFragment的简单使用
热门文章
- React Tutorial (updating)
- spug上线服务踩坑记
- Mac 终端打开jupyter notebook,用这句话就对了
- 论文阅读《Knowledge Collaborative Fine-tuning for Low-resource Knowledge GraphCompletion》
- C++多态的原理(虚函数指针和虚函数表)
- vs.net发送邮件(2.0)
- Vuex-状态管理(24)
- java 第三方登录之QQ登录
- hana 服务器性能测试,SAP HANA
- Java 中的 T,E,K,V, 别傻傻分不清楚!