java websocket服务端丢消息

  前提:客户端和服务端基于websocket进行交互,客户端每隔8s发送心跳,服务端检测心跳,超过三分钟没收到会关闭session。
  现象:客户端日志记录发送了心跳消息,服务端没收到心跳,超时后服务端关闭sessionA,客户端新建了会话sessionB,过了会又收到了之前sessionA的消息,由于sessionA已经关闭,所以isOpen 方法返回 false。
  最开始并没有关注到sessionA在关闭后收到的消息,所以一直以为是丢消息了,服务端说是客户端的问题,客户端说明明发送了消息,日志都记录了。
  当然现有消息交互方式也是有问题的,客户端记录发送成功,并不表明真的成功了,所以靠谱的应该是加上业务层的ack,客户端收到服务端的业务ack才真正的是表明消息发送成功了。现在介绍为什么会出现上面的现象。
  客户端跟服务端是单会话形式,所以被@OnMessage标注的方法会依次触发,什么意思?客户端A往服务端发送了1、2、3三个消息,服务端先处理1、处理完之后才会处理2,然后是3。当然了,session之间是并发的,互不影响,只是session内消息是一条一条执行。问题就在这,如果消息1执行很慢,时间超过3分钟,而心跳消息2、3…由于得不到处理就会触发超时关闭session。
  结论:消息并没有丢,而是由于消息处理时间太久,导致后续消息得不到执行,程序判断心跳超时 关闭了session。原因找到了,怎么处理就比较容易了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/820304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt_30道常见面试题及答案

1. 简述 Qt 是什么? 答:Qt 是一个跨平台的应用程序开发框架,它提供了一系列的工具和库,用于开发图形用户界面(GUI)应用程序。 2. Qt 有哪些主要模块? 答:Qt 的主要模块包括 Qt Co…

Linux之 USB驱动框架-usb-skeleton.c usb驱动源码分析(3)

一、usb 驱动框架图 二、 usb 设备经典驱动:usb-skeleton.c 驱动 路径: drivers/usb/usb-skeleton.c USB骨架程序可以看做一个最简单的USB设备驱动的实例,其分析流程大致如下: static struct usb_driver skel_driver { …

揭示边缘计算网关的市场价格趋势(购买指南)-天拓四方

在数字化转型的大潮中,边缘计算网关作为连接云端与终端设备的核心节点,其重要性日益凸显。然而,面对市场上琳琅满目的边缘计算网关产品,对于许多企业和个人用户来说,边缘计算网关的价格成为选择产品时的重要考量因素。…

Android 14.0 recovery出厂时正在清理字体大小的修改

1.前言 在14.0的系统rom定制化开发中,在系统中recovery模块也是系统中比较重要的模块,比如恢复出厂设置,recovery ota升级,清理缓存等等, 在一些1080p的设备,但是density只是240这样的设备,会在恢复出厂设置的时候,显示的字体有点小,产品要求需要将正在清理的字体调大…

KT-105小动物人工呼吸机

咳咳,请各位小伙伴们注意啦!我们要聊的主题可是相当高大上——小动物呼吸机! 我们得先了解一下什么是小动物呼吸机。这可不是一般的机器哦,它是一种实验设备,主要用于各种各样的科学研究实验中。比如,在基…

【C++类和对象】类和对象的引入

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

2024.4.15力扣每日一题——设计哈希映射

2024.4.15 题目来源我的题解方法一 链表自定义哈希函数 题目来源 力扣每日一题&#xff1b;题序&#xff1a;706 我的题解 方法一 链表自定义哈希函数 使用链表存储每个<key,value>。由于题目有限制put的次数不超过10000次&#xff0c;因此对于哈希函数的设计为&#…

mysql查找binlog的删除记录时间

需求&#xff1a;数据库某表的数据没有了&#xff1b;如何找是什么时修改清掉的&#xff1b; 思路&#xff1a; 1. 查代码&#xff0c;找某表的删除接口&#xff0c;分析是在哪里调用&#xff1b;【部分服务log不全】 2. 查服务的log&#xff1b;【部分服务log不全】 3. 查…

【学习笔记十七】波次管理、自动波次和WOCR介绍及配置

一、手工维护波次 波次是控制仓库活动(如拣配)的仓库请求项目(通常是出库交货订单项目)的分组。这些分组随后在后续流程中一起处理,例如,将分配到波次的所有仓库请求项目传输到仓库任务创建。 注意:仓库请求是出库交货订单、过账更改、库存转储(用于仓库中的内部移动)或入库…

38条Web测试经验分享

1. 页面链接检查 每一个链接是否都有对应的页面&#xff0c;并且页面之间切换正确。可以使用一些工具&#xff0c;如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。 LinkBotPro不支持中文&#xff0c;中文字符显示为乱码&#xff1b;HTML Link Validater只能测试…

S7-1200PLC控制V90伺服通过FB284实现位置控制的方法

S7-1200PLC控制V90伺服通过FB284实现位置控制的方法 通过西门子报文111和FB284功能块 在V-ASSISTANT中将V90 PN设置控制模式为"基本位置控制(EPOS)" V90 PN与PLC采用PROFINET RT通信方式并使用西门子报文111。 在博途中V90 PN的设备视图中更改报文为:报文111 安装…

VSCode+Cmake 调试时向目标传递参数

我有一个遍历文件层次结构的程序&#xff0c;程序根据传入的文件路径&#xff0c;对该路径下的所有文件进行遍历。这个程序生成一个名为 ftw 的可执行文件&#xff0c;如果我要遍历 /bin 目录&#xff0c;用法为&#xff1a; ftw /bin问题是&#xff0c;如果我想单步跟踪&…

HBase2.x学习笔记

文章目录 一、HBase 简介1、HBase 定义1.1 概述1.2 HBase 与 Hadoop 的关系1.3 RDBMS 与 HBase 的对比1.4 HBase 特征简要 2、HBase 数据模型2.1 HBase 逻辑结构2.2 HBase 物理存储结构2.3 HBase的表数据模型 3、HBase 基本架构3.1 Master3.2 Region Server3.3 Zookeeper3.4 HD…

ipsec在window下的软件,Windows 自带的 IPsec 操作方法

在 Windows 操作系统下&#xff0c;有一些软件可以用于实现 IPsec 功能&#xff0c;包括&#xff1a; Windows 自带的 IPsec 实现&#xff1a; Windows 操作系统本身就内置了 IPsec 功能&#xff0c;可以通过操作系统提供的 IPsec 策略管理器&#xff08;IPSec Policy Manage…

每日一练 | 华为认证真题练习Day215

1、下面是一段MUX VLAN中,关于主VLAN和从VLAN的配置,关于此配置说法正确是(多选) A. VLAN 10为主机VLAN B. VLAN 11为主机VLAN C. VLAN12为隔离型从VLAN D. VLAN 11和VLAN 12都为从VLAN E. VLAN 10和VLAN 11都为MUX VLAN 2、BGP邻居建立过程的状态存在以下几种,那么建立一个…

202305青少年软件编程(scratch图形化)等级考试试卷(四级)

第1题&#xff1a;【 单选题】 下列积木运行后的结果是&#xff1f; &#xff08; &#xff09; &#xff08;说明&#xff1a; 逗号后面无空格&#xff09; A:我 B:爱 C:中 D:国 【正确答案】: B 【试题解析】 : 两个字符串连接后的第 8 个字符是“爱” 。 第2题&#…

芯片 ID

芯片的 ID 编号&#xff0c;通常指的是两种情况&#xff1a;一是在制造过程中物理植入到芯片中的标识符&#xff08;例如&#xff0c;芯片型号或序列号&#xff09;&#xff0c;二是通过软件设置的唯一身份标识&#xff08;如MAC地址等&#xff09;。 物理标识符&#xff1a; 物…

【工具】智慧树自动播放-油猴、篡改猴脚本,自动播放、自动下一节

一、自动播放脚本 编写此脚本的原因是&#xff0c;女朋友单位要求刷*.zhihuishu.com课程&#xff0c;先是想到用python自动化来处理&#xff0c;折腾半天不太好使&#xff1b;后面想到用油猴脚本来处理&#xff0c;安装了很多个现成的脚本&#xff0c;依旧不好使&#xff0c;只…

基于flutter3.x+window_manager+getx桌面端仿macOS系统

flutter3_macui桌面端仿macOS系统实战项目完结啦&#xff01; 原创研发flutter3.19dart3.3window_managergetx等技术构建桌面版macOS系统。支持自定义毛玻璃虚化背景、Dock菜单多级嵌套自由拖拽排序、可拖拽弹窗等功能。 支持macOS和windows11两种风格。 使用技术 编辑器&…

java脱敏处理

package com.testjdbc.util; import org.apache.commons.lang3.StringUtils;/*** 信息脱敏工具类**/ public class DataMaskingUtils {public static void main(String[] args) {//中文名脱敏String s1 DataMaskingUtils.chineseName("欧阳娜娜"); //欧***System.ou…