首页 > 其他分享 >websocketpp中心跳函数使用记录

websocketpp中心跳函数使用记录

时间:2023-02-28 19:56:14浏览次数:55  
标签:调用 函数 记录 ping 发送 注册 pong websocketpp

依赖的开源库:WebSocket++ | Zaphoyd Studios

server发送ping

client响应pong

问题: 通过set_ping_handler注册on_ping 函数后,发送一次心跳,却收到两次pong;

分析: 抓包分析客户端确实发送了两次包;

解决:    1、服务端: on_ping()函数中不能添加endpont_.ping()代码,且发送心跳时不能直接调用on_ping()函数,应该确定好目标ws连接后直接调用endpont_.ping(); 后者会自动关联到前面注册的on_ping()函数上;

    2、客户端: 收到ping后发送pong(1次),本地在on_ping函数中调用endpoint.pong(msg)(2次);

 扩展: 

   对于client注册的on_pong函数,如果不主动调用就会发现注册没有意义,所以注册后,可使用endpoint.pong()来调用注册的on_pong()函数,这个时候你会发现 [FIN][MASKED]中 有两个websocket了;

如下抓包结果,可以确定一次ping对应一次pong: 

 

标签:调用,函数,记录,ping,发送,注册,pong,websocketpp
From: https://www.cnblogs.com/uagvdu/p/17165723.html

相关文章

  • Preparing for Spring Boot 3.0 | Spring Boot 3.0 升级 实战踩坑记录
    PreparingforSpringBoot3.0https://spring.io/blog/2022/05/24/preparing-for-spring-boot-3-0SpringBoot3.0.0的到来,我们将会面临着那些问题-掘金https://jue......
  • react-native学习记录1(都是坑,各种版本问题,让人望而却步)
    1.环境搭建https://zhuanlan.zhihu.com/p/528196912?utm_id=02.创建项目npxreact-nativeinitsomeProject--version0.66.0npxreact-nativerun-android生命周期,路由,......
  • CF1575 VP记录
    VPTime:2023-2-2719:10~23:10(实际上因为要sleeping,22:00直接run了)A按题意模拟。ilboolcmp(nodex,nodey){stringu=x.s,v=y.s;for(inti=0;i......
  • xml文档操作的一个问题记录
    关于xml文件转换报错问题在一次UAT测试环境中发现的有关xml文件操作的问题,程序加载模板文件**.xsl(一种xml格式的文件),读取一个xml文件内容,将xml转换为预期的一个xml,在根据......
  • 通过java代码向mysql数据库插入记录,中文乱码处理
    处理步骤修改mysql配置文件,并重启mysql服务。mysql默认配置文件路径为/etc/my.cnf。修改配置如下:[mysqld]character-set-server=utf8[client]default-character-set......
  • 联想拯救者Y7000P笔记本电脑风扇异响更换风扇记录
    情况描述:联想拯救者Y7000P笔记本右侧显卡风扇异响我把耳朵靠近,明显能听到笔记本的发出的异响声音,之前以为散热不行,加了点硅胶,不久后又出现这个风扇异响了。​右侧这边是显卡......
  • python函数
    函数会给一段语句块命名,我们可以在任何时候调用它,运行其中的代码它的一班语法:deffun_name(x):函数语句体returnadef:说明这是一个函数,我们定义了一个函数......
  • phaser引擎使用记录
    初始化gamefunctiongameInit(){game=newPhaser.Game({type:Phaser.WEBGL,//游戏渲染方式---手机游戏请务必指定Phaser.CANVASWEBGL......
  • 聚合函数、group by、having、order by
    1、聚合函数:1.1、COUNT: 计算表中的记录数(行数)可以计算出所有数据行:selectcount(*)fromtable_name可以计算出所有非空行数selectcount(columns)fromtanle_na......
  • sql 开窗函数排序遇到空值的处理办法
    sqlsever默认null最小升序排序null值在最前面,若要放在后面,则:orderbycasewhencolisnullthen1else0end,col降序排序null值在最后面,若要放在前面,则:order......