【WebSocket】报错:The remote endpoint was in state [TEXT_FULL_WRITING]

websocket多线程发送消息报错TEXT_PARTIAL_WRITING--自旋锁替换synchronized独占锁的使用案例 阅读详情

报错信息如下所示:

java.lang.IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method
	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.checkState(WsRemoteEndpointImplBase.java:1228)
	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.textStart(WsRemoteEndpointImplBase.java:1191)
	at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:190)
	at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37)

错误的方式:

@OnMessage
public String pushMessage(String message, Session session) {
   /*代码*/
   return message;
}

正确的方式:

@OnMessage
public void pushMessage(String message, Session session) {
   /*代码*/
}

原因分析:
@OnMessage注解的方法表示消息事件,通过该注解的方法上有一个额外的选项:方法可以返回类型或者返回为空。当使用@OnMessage注解的方法有返回类型时,WebSocket实现立即将返回值作为消息返回给刚刚在方法中处理的消息的发送者,这在我们需要设计一个应用显式确认收到WebSocket消息的特殊情况下是有用的。其余情况应该使用void,即返回为空。

The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method 发送消息失败, 阅读详情

相关推荐

Android架构中UseCase的设计原则与实战解析

本文深入解析Android架构中UseCase的设计原则与实战应用,探讨其在Domain Layer中的核心作用。通过对比ViewModel的臃肿问题,详细阐述UseCase的无状态原则、单一职责边界等设计铁律,并提供多种实现方式的代码示例,帮助开发者构建更清晰、高效的Android应用架构。

weixin_28432777的博客 431

服务端发送消息给客户端失败java.lang.IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING]

handlerA和handlerB两个方法有可能同时执行,当A或者B方法遍历到某一个session并且调用sendMessage发送消息的时候,另外一个方法也正好也在使用相同的session发送另外一个消息(同一个session消息发送冲突了,也就是说同一个时刻,多个线程向一个socket写数据冲突了),就会报TEXT_FULL_WRITING异常。这种解决方案只是利用一种缓冲加惰性判断的方式,并不是标准解决方案,如果觉得这种方案有什么问题,或者有更好的方案,可以大家讨论下。

wufaqidong1的博客 6168

LabVIEW内存优化实战:用DVR和队列高效处理大型数组,告别数据副本

本文深入探讨LabVIEW内存优化技术,重点介绍数据值引用(DVR)和单元素队列(SEQs)在高效处理大型数组中的应用。通过对比传统方法与现代引用技术的性能差异,提供减少内存副本、提升程序效率的实战方案,帮助开发者在测试测量、图像处理等数据密集型场景中实现显著性能提升。

weixin_30835649的博客 1061

【报错】IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid

【代码】【报错】IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid。

ruisasaki的博客 1466

【Unity】YooAsset + HybridCLR热更

本文介绍了Unity游戏开发中的热更新技术方案,重点对比了资源热更和代码热更的主流工具。资源热更方面分析了Asset Bundle、Addressable和YooAsset的优缺点;代码热更部分比较了xLua、ILRuntime、InjectFix和HybridCLR的性能特点。文章详细演示了HybridCLR+YooAsset的实践方案,包括加载热更新程序集、反射调用热更代码、资源打包部署等完整流程。该方案通过原生运行时实现程序集级热更,具有极低性能损耗和全生命周期适用性,配合YooAsset简化了资源管

欢迎指错||纠正||建议||水评+点赞&&评论&&关注&&转发 2916

MatLab:数字图像处理实验

图像处理基本处理实验目的实验环境实验内容题目一代码结果题目二平移平移代码平移结果水平镜像水平镜像代码水平镜像结果垂直镜像垂直镜像代码垂直镜像结果放大放大代码放大结果缩小缩小代码缩小结果旋转旋转代码旋转结果双线性旋转旋转代码旋转结果 实验目的 1、熟悉并掌握MATLAB工具的使用;  2、实现图像的读取、显示、存储、平移、镜像、放大、缩小及旋转操作; 3、掌握常用的插值方法,并了解其优缺点。 实验环境 MatLab2016 实验内容 题目一 读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分别显

luoyao_的博客 9696

The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method 已解决

前面有个webSocket自动断开连接的问题,已解决,请见博客: webSocket java.io.EOFException: null 增加心跳机制解决 然后又报了一个错: java.lang.IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method at org.apache.tomcat.websocket.W

u013282737的博客 7762

概述DeepLab系列(deeplab v1, deeplab v2, deeplab v3, deeplab v3+)

前言:图像分割是指像素级别的图像识别,即标注出图像中每个像素所属的对象类别。 语义分割更注重类别之间的区分,而实例分割更注重个体之间的区别。 DeepLab是由Google团队提出的一系列图像分割算法。 DeepLab v1 (2014年) Paper (ICLR 2015) Code 创新点: 空洞卷积(Atrous Conv); <解决编码过程中信号不断被下采样,细节丢失的问题> 全连接条件随机场(Fully-connected Conditional Random Field)。

ZSH12345678900的博客 5528

Java WebSockets: The remote endpoint was in state [TEXT_FULL_WRITING]

报错信息: java.lang.IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$State

小海的博客 1万+

Dynamics CRM证书更换

  Dynamics CRM产品一般有两种认证方式。第一种是基于声明的内部访问也就是无证书单纯用账号密码验证。第二种就是联合身份认证,需要安装网站证书。   对于联合身份认证的情况因为需要安装证书,而且证书是有一个一年的有效期,所以运维人员每年都需要进行证书更换的操作。以下就是更换证书的方法及过程。 证书根据申请方式一般也分两种,第一种是自建证书,这种证书是没有机构认证的所以安装上之后网站因为没...

bzpfly的博客 877

YOLOv11改进 | 检测头篇 | 利用AFPN辅助YOLOv11检测头进行特征融合识别(全网独家创新)

本文给大家带来的最新改进机制是利用AFPN(渐近特征金字塔网络)来优化检测头,AFPN的核心思想是通过引入一种渐近的特征融合策略,将底层、高层和顶层的特征逐渐整合到目标检测过程中。这种渐近融合方式有助于减小不同层次特征之间的语义差距,提高特征融合效果,使得检测模型能更好地适应不同层次的语义信息。本文在AFPN的结构基础上,为了适配YOLOv11改进AFPN结构,同时将AFPN融合到YOLOv11中(因为AFPN需要四个检测头,我们只有三个,下一篇文章我会出YOLOv11适配AFPN增加小目标检测头)

Snu77的博客 3751

Springboot+WebSocket使用报错IllegalStateException及解决方案

这个错误表明在尝试通过 WebSocket 发送文本消息时,WebSocket 连接的状态处于状态,而该状态是不允许调用方法的。这通常发生在。简单说是因为两个不同线程同时调用了sendMessage这个方法,也就是同一时刻向socket写消息冲突了。

weixin_43743922的博客 1197

基于BenchmarkSQL的达梦数据库TPCC性能测试

中的用户和密码在达梦数据库中创建测试用户,并保证其表空间足够容纳生成的测试数据。如果开启了归档,还要考虑归档日志占用的空间。BenchmarkSQL默认不支持达梦数据库。这里我们让BenchmarkSQL把达梦数据库当作Oracle即可。Oracle数据库对应的测试配置文件为。是使用BenchmarkSQL进行性能测试的主要配置文件。是生成的测试报告,png文件是报告中包含的图片。拷贝达梦数据库驱动到BenchmarkSQL的。测试结束后,会在当前路径下生成一个以。规则命名的结果目录。

Sebastien23的博客 2635

websock报错:The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for caller

网上看到了一些关于这个错误的产生场景 参考:场景:使用websocket遇到的一个小问题 The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid stat 我这里产生错误的场景是不同的,记录一下 背景 提供websocket服务的公司,其内部的系统已经与websocket server建立了长连接,图中的nginx是一个出口网关,其运维要求是出口网关与上游服务是不能建立长连接的。 而我们作为外部公司

u013905744的专栏 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java.lang.IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] which is an in

java.lang.IllegalStateException 表示一个方法在对象的当前状态下不能被调用。在这个特定的错误中,“The remote endpoint was in state [TEXT_FULL]” 意味着在尝试向一个远程端点发送文本消息时,消息缓冲区已经满了,不能再接受更多的文本数据。检查发送消息的频率和大小,确保不会在短时间内发送大量数据。如果是因为网络问题导致消息没有及时发送,可以实现重试机制。

zy103118的博客 2024

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WebSocket异常: The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for call

public static void sendText2(Session session,String message){ if (!session.isOpen()){ return; } // synchronized (session){ /** * sessoion 这边向前...

qq_36551344的博客 5719

WebSocket中的报错:Exception in thread "Thread-5" java.lang.IllegalStateException: The remote endpoint wa

  Exception in thread "Thread-5" java.lang.IllegalStateException: The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method at org.apache.tomcat.websocket....

懒惰的小妖 3777

hackthebox靶场记录(Cap、Connected、Reactor、Facts、WingData、Orion)

HTB靶场:Cap、Connected、Reactor、Facts、WingData、Orion,待更新

qq_43292831的博客 704

The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method 解决方

log.error("发送消息时出现异常: " + e.getMessage());方法中,首先根据会话的唯一标识符获取对应的锁对象,然后对该锁对象进行加锁操作,执行完发送消息的操作后再释放锁对象。log.error("发送消息时出现异常: " + e.getMessage());以下是一个简单的部分示例代码,演示了如何使用全局锁对象映射表来确保多个会话之间的操作互不干扰。这样就可以确保每个会话之间的操作互不干扰,解决了多客户端并发访问的问题。映射表,用于将会话的唯一标识符映射到对应的锁对象上。

weixin_45768246的博客 4118

如何解决The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method...

这个错误通常是由于客户端在连接远程终端时发生了错误。可能的原因包括: 连接超时:网络连接不稳定或网络延迟导致连接超时。 端口问题:远程终端未开放相应端口或客户端使用了错误的端口。 网络防火墙:防火墙限制了客户端与远程终端之间的连接。 服务器问题:远程终端上的服务出现问题导致无法连接。 解决方法: 确保网络连接稳定,并增加连接超时时间。 检查端口是否正确,并确保远程终端已开放相应端口...

weixin_42602726的博客 5347
上一篇: 【Mybatis】占位符#{}和${}的区别
下一篇: 分布式与集群是什么?区别为何?
少侠露飞
博客等级 码龄9年 214粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值