websocket多线程发送内容

本文介绍了WebSocket在多线程环境下如何发送内容,通过Spring的包装类实现WebSocketSession的并发使用,将session保存到全局Map中以便随时调用。主要涉及WebSocketSession基类接口、接口实现类以及并发安全的包装类设计,特别强调了sendMessage方法在并发场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

websocket多线程发送内容

1.websocketSession基类接口:

org.springframework.web.socket.WebSocketSession
其中包含 getPrincipal,getLocalAddress,getRemoteAddress,sendMessage,isOpen,close等方法定义

2.接口的实现类,实现了上面的接口,采用包装设计模式,只做转发没有处理逻辑,具体看下面这个类:

org.springframework.web.socket.handler.WebSocketSessionDecorator

3.带并发的包装类:

ConcurrentWebSocketSessionDecorator
主要关注两个方法	sendMessage 和 close,

```
public void close(CloseStatus status) throws IOException {
    this.closeLock.lock(); //获取关闭锁

    try {
        if (!this.closeInProgress) {  //如果已经关闭了,则不处理
            if (!CloseStatus.SESSION_NOT_RELIABLE.equals(status)) {
                try {
                    this.checkSessionLimits(); //检查超时时间和buffer状态
                } catch (SessionLimitExceededException var6) {
                    ;
                }

                if (this.limitExceeded) {
                    if (logger.isDebugEnabled()) {
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值