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 这边向前端推送有两个方法 getAsyncRemote 异步方式 getBasicRemote 同步方式
* 这边采用的是同步方式反应速度比较快 但是后期可能出现 等待线程情况 getBasicRemote 如果向多个连接推送的话
* 需要排队发送一个一个来的情况
*/
Async async = session.getAsyncRemote();

    // sendText 发送消息
    async.sendText(message); //异常报错

// }
}
以上为报错代码。处理方案:在发送消息处加上synchronized 同步

public static void sendText2(Session session,String message){
if (!session.isOpen()){
return;
}
synchronized (session){
/**
* sessoion 这边向前端推送有两个方法 getAsyncRemote 异步方式 getBasicRemote 同步方式
* 这边采用的是同步方式反应速度比较快 但是后期可能出现 等待线程情况 getBasicRemote 如果向多个连接推送的话
* 需要排队发送一个一个来的情况
*/
Async async = session.getAsyncRemote();

    // sendText 发送消息
    async.sendText(message); //异常报错
    }

}

原因:多session同时调用同一个方法,引起冲突

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值