栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

实时通信websocket

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实时通信websocket

对于需要实时的消息通信需要借助socket来进行消息传输

springboot集成websocket
@Configuration
public class WebSocketConfig {
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}

@Slf4j
@ServerEndpoint("/websocket/getdata")
@Component
public class WebSocketServer {
    //记录在线连接数
    private static int onlineCount = 0;

    //concurrent包的线程安全set,用来存放每个客户端对应的TelStatusChangeWebSocket对象
    public static Map webSocketMap = new ConcurrentHashMap<>();

    
    @OnOpen
    public void onOpen(Session session){
        //加入set中
        webSocketMap.put(session.getId(), session);
        //在线数加一
        addOnlineCount();
        log.info("开启websocket连接");
    }

    
    @OnClose
    public void onClose(Session session){
        webSocketMap.remove(session.getId());
        //在线人数减1
        subOnlineCount();
        log.info("关闭websocketMap连接");
    }

    
    @OnMessage
    public void onMessage(String message, Session session){
        log.info("{}传来的消息为{}",session.getId(), message);
    }

    
    public void sendMessageToAll(String msg){
        webSocketMap.forEach((id, session)->{
            try {
                session.getBasicRemote().sendText(msg);
                log.info("消息发送成功{}", msg);
            }catch (Exception e){
                log.info("{},发送消息失败,原因{}",session.getId(),e);
            }
        });
    }

    private void subOnlineCount() {
        WebSocketServer.onlineCount--;
    }

    private void addOnlineCount() {
        WebSocketServer.onlineCount++;
    }

}

使用WebSocket中出现的问题
  1. 问题:javax.servlet.ServletException: javax.websocket.DeploymentException: The path [webSocket] is not valid.

解决@ServerEndpoint("/websocket/getdata")路径开头要有/

  1. WebSocketConfig类中注解错误使用成@Configurable,应该为:@Configuration。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284855.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号