最近开发中需要通过websocket对接数据,本着面向百度编程的基本原则, 先从网上找了篇博客,学习了websocket客户端的基本创建过程,然后就自己写demo上了(过于简单,此处不表)。

demo写好了之后又找了个在线测试网站ws://121.40.165.18:8800,通过本地服务调用在线服务测试连通性,非常顺滑,直接收到了服务器的返回数据,以为ok了,结果后面测试send方法,向服务器发送数据时,就开始偶发性报错,即有时候能发送成功,有时候则发送失败。

报错内容如下:

从异常栈来看,报错非常明显:WebSocket没有连接上。那么问题来了,之前通过在线网站测试的时候,明明已经收到了返回数据,而且有些时候向服务器发送也能成功,为什么会报错Websocket没有连接上?

带着疑惑定位到报错代码处,一顿源码读下来没有发现什么问题,于是又陷入沉思:java-websocket jar包已经封装的那么好了,我自己代码也没做什么实现,究竟哪里引入了问题?

这个阶段卡了很久,网上也查找了资料,没什么发现,转机出现在不知道被什么指引点进去看了connect的源码:

看到这个异步方法,才疏学浅的我真的虎躯一震!一切都解释的通了,原以为connect方法建立好连接,后面再去发送数据是理所当然,没想到还有这等隐蔽操作。解决办法就是一直判断连接是否已经建立,如果没有则等待,反之则发送数据。

WebSocket踩坑:org.java_websocket.exceptions.WebsocketNotConnectedException: null相关推荐

  1. 关于appium踩坑 selenium.common.exceptions.WebDriverException: Message: An unknown server-side error(已解决)

    万叶集

  2. Laya小游戏上架Vivo平台踩坑记录(持续更新)

    Laya小游戏上架Vivo平台踩坑记录(持续更新) 个人踩坑的一些记录,大佬留情! 一些快捷键: Ctrl+P 搜索脚本文件 Ctrl+Y 恢复操作 Ctrl+Z 撤回操作 Ctrl+F 搜索字段 C ...

  3. nginx实现对websocket加密协议wss协议的反向代理以及websocket整合springboot入门(踩坑)

    出发点 最近公司需要有一个推送前端消息的需求 首选websocket进行推送,也做过客服系统接触过,最近看了一点websocket的相关内容记录总结一下. 什么是websocket websocket ...

  4. contentprovider踩坑之路之Failed to find provider info for com.example.app.provider和cursor=null空指针问题

    目录 bug1.Failed to find provider info for com.example.app.provider bug2:cursor=null bug1.Failed to fi ...

  5. 安卓JNI踩坑 FORTIFY: fwrite: null FILE*

    文章目录 1. 问题出现的原因 2.问题解决 1. 问题出现的原因 初学JNI,跟着视频学敲代码.由于教学用的Eclipse,我用的AS.所以难免会遇到很多的坑,并且教学时用的是虚拟器,所以开发环境和 ...

  6. 日常踩坑记录-汇总版

    开发踩坑记录,不定时更新 心得 RTFM 严谨的去思考问题,处理问题 严格要求自己的代码编写习惯与风格 注意 单词拼写 20200207 mybatis plus 自带insert插入异常 sql i ...

  7. H5音频处理——踩坑之旅

    随着公司产品的业务扩展,今年算是和浏览器的录音功能硬磕上了.遇到了不少奇葩的问题以及一些更多的扩展吧~这里记录一下分享给同样遇到问题后脑壳疼的各位. 解析base64的pcm数据进行播放 这个场景还是 ...

  8. unity webgl开发踩坑——从开发、发布到优化

    目录 前言 环境 unity webgl的一些注意点 videoplayer修改-->Video Player WebGL插件 text修改--解决不能显示汉字问题 制作.读取ab包 unity ...

  9. 微信开发踩坑系列一之Native支付

    微信开发踩坑系列一之Native支付 1.前言 1.1.文章说明 1.2.微信支付简介 1.3.项目技术栈 2.Native支付开发 2.1.官方描述 2.2.两种模式介绍 2.3.开发前准备工作 2 ...

最新文章

  1. HDU 4166 BNU 32715 Robot Navigation (记忆化bfs)
  2. 85. Leetcode 746. 使用最小花费爬楼梯 (动态规划-基础题)
  3. Bootstrap的引用文件
  4. CUDA从入门到精通(四):加深对设备的认识
  5. 让JTextField添加“自动完成”功能
  6. 质数环问题c语言,素数环问题
  7. iphone8plus屏幕尺寸_性能领先安卓机 苹果iPhone 8 Plus热销
  8. vim编辑和命令模式、实践
  9. 【算法训练】DAY1:整数反转
  10. python time模块
  11. java反序列化后不相等_Jackson:使用不同的属性名称序列化/反序列化 - java
  12. 如何导入asl文件?ps制作知识
  13. 小试OKR一季度之后有感分享,你要不要试试ORK?
  14. php解析shapefile,Fiona简介及Shapefile数据读取
  15. Linux事件驱动网络编程,Linux系统编程之事件驱动
  16. in not 效率太慢_[笔记] SQL性能优化 - 避免使用 IN 和 NOT IN
  17. 《植物大战僵尸(PC)》游戏评测
  18. 三种数据流分析的方程、用途
  19. 追踪算法MUSTer体验
  20. 退出登录清空session

热门文章

  1. Outlook邮件中table td内容不能换行
  2. fiddler抓包,Iphone 设置代理后,app和其他任何东西都不能上网的解决方案
  3. R语言ineq算基尼系数_R语言中自编基尼系数的CART回归决策树的实现
  4. ATE DPS参数:ATE DPS电压、电流控制参数
  5. 趣头条怎么搬运文章,趣头条搬运文章技巧
  6. 设计模式之面向对象设计原则
  7. RFID智慧绿色洗涤系统
  8. 防不胜防 4K电视和4K屏都有假的!到底怎样才是真4K?
  9. MySql错误1045 Access denied for user 'root'@'localhost' (using password:YES) windows下的解决方案(忘记密码)
  10. STM32烧录程序失败