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;