WebSocketClient objects are not reuseable
好久没写东西,夜深了来冒个泡,先啰嗦几句。今天测试 Android App 的时候,发现推到后台不到一分钟再唤醒直接闪退,初次以为网络和GPS信号弱导致的(当时是在地铁上进行的测试),之后在网络与GPS 信号较稳定的时候也闪退。。。于是出于好奇,帮助同事解决一下,打开AS进行连调,结果连调情况下不会闪退。最后还是查日志锁定到了问题所在。
//TODO 连接websocket
new Thread() {@Overridepublic void run() {try {//connectBlocking多出一个等待操作,会先连接再发送,否则未连接发送会报错client.connectBlocking();} catch (InterruptedException e) {e.printStackTrace();}}
}.start();
执行client.connectBlocking(); 会报错WebSocketClient objects are not reuseable。
看他代码,并没有用到websocket的状态进行判断。
我们先来看下websocket的四种状态
public enum ReadyState {NOT_YET_CONNECTED, OPEN, CLOSING, CLOSED
}
在重连的时候,没有排除之前没有连接上这种状态,导致崩溃。
重点在这里:经过以下调整,就不会再崩溃了。
//TODO 连接websocket
if (client != null && !client.isOpen()) {new Thread(new Runnable() {@Overridepublic void run() {if (client.getReadyState().equals(ReadyState.NOT_YET_CONNECTED)){try {client.connectBlocking();} catch (Exception e) {e.printStackTrace();}}else if (client.getReadyState().equals(ReadyState.CLOSING) || client.getReadyState().equals(ReadyState.CLOSED)){try {client.reconnectBlocking();} catch (InterruptedException e) {e.printStackTrace();}}}}).start();
}
还要注意的一个问题就是防止创建多条连接 ,注意创建逻辑哦~
good luck
相关文章:
WebSocketClient objects are not reuseable
好久没写东西,夜深了来冒个泡,先啰嗦几句。今天测试 Android App 的时候,发现推到后台不到一分钟再唤醒直接闪退,初次以为网络和GPS信号弱导致的(当时是在地铁上进行的测试),之后在网络与GPS 信…...
分享54个ASP.NET源码总有一个是你想要的
分享54个ASP.NET源码总有一个是你想要的 链接:https://pan.baidu.com/s/1khPzxtOFP0wUHpg7TBDitg?pwd8888 提取码:8888 项目名称 (ASP.Net)基于三层架构的企业信息管理系统 asp .net mvc编写的房产管理系统 asp.net core mvc 病人管理后台 asp.ne…...
闭包通俗解释,Demo(Go Java Python)
闭包的概念 想象一下,你有一个包裹着变量的函数,就像是一个封闭的包裹。这个包裹里有一个变量,而这个函数(或包裹)本身就是一个完整的单元。当你把这个函数传递给其他地方,就像是把这个包裹传递出去。 这…...
Linux部署Redis Cluster高可用集群(附带集群节点添加删除以及槽位分配操作详解)
目录 一、前言二、下载安装Redis2.1、选择需要安装的Redis版本2.2、下载并解压Redis2.3、编译安装Redis 三、部署Redis Cluster高可用集群3.1、准备配置文件3.2、启动Redis服务3.3、创建Redis集群3.4、查看集群关系3.5、连接集群Redis进行数据读写以及重定向测试3.6、故障转移和…...
【PWN · heap | Off-By-One】Asis CTF 2016 b00ks
萌新进度太慢了,才真正开始heap,还是从简单的Off-By-One开始吧 前言 步入堆的学习。堆的知识复杂而多,于是想着由wiki从简单部分逐个啃。 b00ks是经典的堆上off-by-one漏洞题目。刚开始看很懵(因为确实连堆的管理机制都没有完全…...
C++STL---Vector、List所要掌握的基本知识
绪论 拼着一切代价,奔你的前程。 ——巴尔扎克;本章主要围绕vector和list的使用,以及容器底层迭代器失效问题,同时会有对原码的分析和模拟实现其底层类函数。话不多说安全带系好,发车啦(建议电脑…...
使用FastAPI部署Ultralytics YOLOv5模型
YOLO是You Only Look Once(你只看一次)的缩写,它具有识别图像中的物体的非凡能力,在日常应用中会经常被使用。所以在本文中,我们将介绍如何使用FastAPI的集成YOLOv5,这样我们可以将YOLOv5做为API对外提供服务。 Python有几个web框…...
A. Doremy‘s Paint 3
今天第一次打CF,不过鼠鼠被气死了 先说说战况,今天一发没A(赛场上),生活真是无奈,废物女友真是一点用没有 心里也很烦,什么压力都自己扛着。每天想尝试改变什么,又被现实掣肘&…...
深度学习_1 介绍;安装环境
深度学习 学习自李沐老师的课程。笔记主要以总结老师所讲解的内容以及我个人的想法为主,侵删! 课程链接:课程安排 - 动手学深度学习课程 (d2l.ai) 介绍 AI地图: 首先,AI 能对问题处理到什么地步?分为四…...
Python基础入门例程19-NP19 列表的长度(列表)
最近的博文: Python基础入门例程18-NP18 生成数字列表(列表)-CSDN博客 Python基础入门例程17-NP17 生成列表(列表)-CSDN博客 Python基础入门例程16-NP16 发送offer(列表)-CSDN博客 目录 描述 输入描述: 输出描述࿱…...
LeetCode 2558. 从数量最多的堆取走礼物
【LetMeFly】2558.从数量最多的堆取走礼物 力扣题目链接:https://leetcode.cn/problems/take-gifts-from-the-richest-pile/ 给你一个整数数组 gifts ,表示各堆礼物的数量。每一秒,你需要执行以下操作: 选择礼物数量最多的那一…...
【JVM】字节码文件的组成部分
🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 JVM 一、字节码文件的组成部分1.1 iconst_0…...
STM32 TIM(四)编码器接口
STM32 TIM(四)编码器接口 编码器接口简介 Encoder Interface 编码器接口 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的…...
力扣第56题 合并区间 c++ 贪心
题目 56. 合并区间 中等 相关标签 数组 排序 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例…...
php 日期
其中关于周的起止,使用date("N"),确保每周周一为起始,避免周日时出现作为新一周起始的情况 //获取上个月第一天 echo "上个月开始时间:".date(Y-m-01 00:00:00,strtotime(-1 month))."\r\n\r\n"; …...
食物链解读
[NOI2001] 食物链 题目描述 动物王国中有三类动物 A , B , C A,B,C A,B,C,这三类动物的食物链构成了有趣的环形。 A A A 吃 B B B, B B B 吃 C C C, C C C 吃 A A A。 现有 N N N 个动物,以 1 ∼ N 1 \sim N 1∼N 编号。…...
Day10配置文件日志多线程
配置文件 在企业开发过程中,我们习惯把一些需要灵活配置的数据放在一些文本文件中,而不是在Java代码写死 我们把这种存放程序配置信息的文件,统称为配置文件 properties 是一个Map集合(键值对集合),但是我…...
leetcode:1154. 一年中的第几天(python3解法)
难度:简单 给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。 示例 1: 输入:date "2019-01-09" 输出:9 解释:给定日期是2019年的第九天。 示例…...
竞赛 深度学习图像修复算法 - opencv python 机器视觉
文章目录 0 前言2 什么是图像内容填充修复3 原理分析3.1 第一步:将图像理解为一个概率分布的样本3.2 补全图像 3.3 快速生成假图像3.4 生成对抗网络(Generative Adversarial Net, GAN) 的架构3.5 使用G(z)生成伪图像 4 在Tensorflow上构建DCGANs最后 0 前言 &#…...
flutter升级+生成drift文件
1. flutter升级 可以安装fvm进行flutter version manager FVM 安装笔记 - 掘金 (juejin.cn) 使用flutter upgrade, 但是没有效果, 可能需要到我的电脑中,更改高级系统设置;改变/增加环境变量;用来加上flutter官网获取信息的内…...
可视化跨平台Node.js管理:如何告别命令行依赖,实现高效多版本切换
可视化跨平台Node.js管理:如何告别命令行依赖,实现高效多版本切换 【免费下载链接】nvm-desktop Node Version Manager Desktop - A desktop application to manage multiple active node.js versions. 项目地址: https://gitcode.com/gh_mirrors/nv/n…...
C166微控制器引导加载程序到应用程序控制权转移实践
1. C166引导加载程序到应用程序的控制权转移概述 在嵌入式系统开发中,引导加载程序(Boot Loader)与应用程序(Application)的分离设计是一种常见架构。这种设计允许我们在不擦除整个Flash的情况下更新应用程序,同时保持引导加载程序的稳定性。对于使用英飞…...
嵌入式工程师职业发展路径:从功能实现到领域专家的价值跃迁
1. 从迷茫到清晰:一个嵌入式工程师的三年复盘与突围 三年前,我带着对电路板和代码的热情,一头扎进了嵌入式开发的世界。和很多新人一样,当时满脑子都是做出“改变世界”的酷产品,想象着自己设计的设备在千家万户、工厂…...
学术创作提质增效:借助 paperxie 智能撰写工具搞定各层级期刊论文
paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/期刊论文https://www.paperxie.cn/ai/journalArticleshttps://www.paperxie.cn/ai/journalArticles 开篇概述 学术论文投稿发表,是学业深造、科研成果落地的关键环节。日常创作过程里ÿ…...
Linux服务器网络断了别慌!手把手教你用nmcli命令快速诊断与恢复连接(实战排错指南)
Linux服务器网络故障急救指南:nmcli命令实战排错全解析 凌晨三点,服务器监控突然告警,SSH连接中断,业务系统全面瘫痪——这是每位运维工程师都经历过的噩梦时刻。当远程连接彻底断开,仅剩控制台可用时,掌握…...
初始中断及实现中断
外部中断基础知识 中断概念:在运行主程序时,外部出现了满足中断触发条件的信号,转而去执行中断处理程序,执行完成后返回主程序stm外部中断框架复用功能与重映射 复用功能概念:引脚本身默认是一个GPIO,但它可…...
如何高效管理动物森友会存档:NHSE完整使用指南
如何高效管理动物森友会存档:NHSE完整使用指南 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE NHSE(Animal Crossing: New Horizons Save Editor)是一款专为《动…...
从0到1搭建AI-PPT流水线,支持中英双语自动适配+品牌VI强制注入(含可运行Python脚本+Power Automate配置包)
更多请点击: https://intelliparadigm.com 第一章:从0到1搭建AI-PPT流水线,支持中英双语自动适配品牌VI强制注入(含可运行Python脚本Power Automate配置包) 本方案构建端到端自动化PPT生成流水线,输入结构…...
OpenAI通用推理模型攻克近80年数学难题,打脸7个月前虚假突破质疑
【导语:5月21日,OpenAI宣布其一款未对外发布的内部通用推理模型独立完成原创数学证明,推翻了匈牙利数学家保罗埃尔德什1946年提出的“平面单位距离猜想”,这是AI首次独立攻克数学领域核心著名公开难题。】AI攻克近80年几何猜想Ope…...
XUnity Auto Translator:打破语言壁垒的Unity游戏翻译解决方案
XUnity Auto Translator:打破语言壁垒的Unity游戏翻译解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾经因为语言障碍而错过精彩的Unity游戏?面对日文、韩文或其他…...
