springMVC+websocket实现消息推送

本文介绍了如何结合SpringMVC和WebSocket实现实时消息推送。首先,列举了所需的jar包,包括javax.servlet-api、javax.websocket-api、spring-messaging和spring-websocket等,并强调了版本一致性。接着,讨论了web.xml配置,指出WebSocket需要Servlet3.0及以上的web.xml配置,并启用异步支持。然后,提到了信息处理类的注解配置,以及设置拦截器的必要性。此外,还说明了通过注解方式注册配置文件。最后,提到了JSP页面和controller的角色。

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

1.所需jar包 


javax.servlet-api-3.1.0
javax.websocket-api-1.1
spring-messaging-4.0.9.RELEASE
spring-websocket-4.0.9.RELEASE
需要js:
sockjs.min.js
jar包注意和spring版本号一致

2.web.xml配置 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	version="3.0">
	<absolute-ordering />
	<!-- 加载spring配置文件 -->
	<context-param>
	  <param-name>contextConfigLocation</param-name>
	  <param-value>
	  classpath:applicationContext.xml
	  </param-value>
	</context-param>
	<!-- 加载log4j配置文件 -->
	<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:log4j.properties</param-value>
  </context-param>
	<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>
	<!-- 加载spring监听器获取配置文件路径 -->
	<listener>
	  <listener-class>
	  org.springframework.web.context.ContextLoaderListener
	  </listener-class>
	</listener>
	
	<!-- springMVC配置 -->
	<servlet>
	  <servlet-name>springmvc</servlet-name>
	  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	   <init-param>
	    <param-name>contextConfigLocation</param-name>
	    <param-value>classpath:springmvc.xml</param-value>
	  </init-param>
	  <load-on-startup>2</load-on-startup>
		<async-supported>true</async-supported>
	</servlet>
	
	<!-- springMVC处理url -->
	<servlet-mapping>
	  <servlet-name>springmvc</servlet-name>
	  <url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

WebSocket 需要Servlet3.0 需要web.xml 3.0及以上,并要配置此
    <absolute-ordering />
将所有的filter和servlet都要添加异步
    <async-supported>true</async-supported>
 

3.信息处理类 

package com.xwj.websocket;

import com.xwj.entity.People;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.*;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * @Description TODO
 * @Author yuki
 * @Date 2018/9/10 9:37
 * @Version 1.0
 **/
@Component
public class MsgScoketHandle implements WebSocketHandler {
    /**已经连接的用户*/
    private static final List<WebSocketSession> peoples;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值