ssm中spring websocket 实现服务器推送消息 以及 一对一聊天

上网看了很多方式,最后觉得这种方式比较简单易懂,这边主要有三个类(包括注解的配置文件)就可以实现后台内容

文末会展示结果实例,如果是你所需要的效果,直接拿去用吧~项目中复制直接用

本文根据网上整理并修改!!!

本文思路来自:链接

现在开始。开始前请确保pom已经引入需要的包

首先是配置文件类(注解)

/** 
 * Spring WebSocket的配置,这里采用的是注解的方式 
 */  
  
@Configuration  
@EnableWebMvc//这个标注可以不加,如果有加,要extends WebMvcConfigurerAdapter  
@EnableWebSocket  
public class WebSocketConfig extends WebMvcConfigurerAdapter implements WebSocketConfigurer {  
  
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {  
        //1.注册WebSocket  
        String websocket_url = "/websocket/socketServer";                        //设置websocket的地址  
        registry.addHandler(webSocketHandler(), websocket_url).                          //注册Handler  
                addInterceptors(new WebSocketHandshakeInterceptor());                   //注册Interceptor  
  
        //2.注册SockJS,提供SockJS支持(主要是兼容ie8)  
        String sockjs_url = "/sockjs/socketServer";                              //设置sockjs的地址  
        registry.addHandler(webSocketHandler(), sockjs_url).                            //注册Handler  
                addInterceptors(new WebSocketHandshakeInterceptor()).                   //注册Interceptor  
                withSockJS();                                                           //支持sockjs协议  
    }  
  
    @Bean
    public TextWebSocketHandler webSocketHandler() {  
        return new WebSocketHandler();  
    }  
}  

然后是连接拦截器类,主要是拦截连接并且设置用户session标识作用,这样在最后一个处理请求类可以分清是哪个已连接用户发出的请求~,

/** 
 * WebSocket握手拦截器 
 */  
public class WebSocketHandshakeInterceptor implements HandshakeInterceptor {  
 
    public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse serverHttpResponse, WebSocketHandler webSocketHandler, Map<String, Object> attributes) throws Exception {  

    	if (request instanceof ServletServerHttpRequest) {
 
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值