文档章节

spring mvc集成websocket

Kent_0628
 Kent_0628
发布于 2015/11/21 00:09
字数 237
阅读 129
收藏 1

1、要求

spring框架版本4.0以上

2、添加jar

核心包

spring-websocket-4.1.4.RELEASE.jar

spring-messaging-4.1.4.RELEASE.jar

依赖包(如果项目已添加,则不用重复添加)

spring-beans-4.1.4.RELEASE.jar

spring-context-4.1.4.RELEASE.jar

spring-core-4.1.4.RELEASE.jar

spring-web-4.1.4.RELEASE.jar

或者在maven的pom.xml中加入websocket所依赖的jar包

<dependency>  
   <groupId>org.springframework</groupId>  
   <artifactId>spring-websocket</artifactId>  
   <version>4.0.1.RELEASE</version>  
</dependency>  
<dependency>  
   <groupId>org.springframework</groupId>  
   <artifactId>spring-messaging</artifactId>  
   <version>4.0.1.RELEASE</version>  
</dependency>

3、创建握手类

package org.kent.socket.interceptor;

import java.util.Map;

import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor;

public class HandshakeInterceptor extends HttpSessionHandshakeInterceptor {

	@Override
	public boolean beforeHandshake(ServerHttpRequest request,
			ServerHttpResponse response, WebSocketHandler wsHandler,
			Map<String, Object> attributes) throws Exception {

		return super.beforeHandshake(request, response, wsHandler, attributes);
	}

	@Override
	public void afterHandshake(ServerHttpRequest request,
			ServerHttpResponse response, WebSocketHandler wsHandler,
			Exception ex) {
		
		super.afterHandshake(request, response, wsHandler, ex);
	}
	
}
4、创建处理类
package org.kent.socket.handler;

import org.springframework.web.socket.TextMessage;  
import org.springframework.web.socket.WebSocketSession;  
import org.springframework.web.socket.handler.TextWebSocketHandler;  

@Component
public class WebsocketEndPoint extends TextWebSocketHandler {  
  
    @Override  
    protected void handleTextMessage(WebSocketSession session,  
            TextMessage message) throws Exception {  
        super.handleTextMessage(session, message);  
        TextMessage returnMessage = new TextMessage(message.getPayload()+" hello world!");  
        session.sendMessage(returnMessage);  
    }  
}

5、处理类和握手协议的spring配置(applicationContext.xml文件)

<websocket:handlers>  
    <websocket:mapping path="/sockets/websocketEndPoint" handler="websocketEndPoint"/>  
    <websocket:handshake-interceptors>  
    <bean class="org.kent.socket.HandshakeInterceptor"/>  
    </websocket:handshake-interceptors>  
</websocket:handlers>











© 著作权归作者所有

Kent_0628
粉丝 2
博文 21
码字总数 5335
作品 0
广州
私信 提问
spring-boot-test测试时出现不能创建bean的问题

最近使用spring-boot写项目,集成了spring-boot-starter-websocket和spring-boot-starter-test; websocket配置如下 正常运行spring-boot时websocket不报错 但是使用单元测试的时候报错 去掉w...

bithup
2018/04/08
2.1K
1
日志工具 - boot-websocket-log

boot-websocket-log spring boot系统中使用websocket技术实时输出系统日志到浏览器端 本项目使用如下相关技术: 1.websocket技术:WebSocket(stopmp服务端),stomp协议,sockjs.min.js,s...

KL博客
2018/08/24
2.2K
1
Spring Boot 之Websocket 编程笔记

有时候会用到向前端页推送消息的情况,这时候就会用到WebSocket 编程了, 1.在pom.xml 中添加如下配置 1.1核心是@ServerEndpoint这个注解。这个注解是Javaee标准里的注解,tomcat7以上已经对...

kuchawyz
2018/09/20
324
0
spring boot整合Websocket笔记

特别说明:自学笔记 使用websocket有两种方式: 使用sockjs, 使用h5的标准。 使用Html5标准自然更方便简单,所以记录的是配合h5的使用方法。 1、pom.xml中添加如下: 核心是@ServerEndpoint...

jackcooper2015
2017/12/28
0
0
websocket:handlers 不起作用

@jack_jones 你好,想跟你请教个问题: 我在使用Spring websocket 时遇到了websocket:handlers不起作用, 其中Spring版本为4.1.6.RELEASE...

TreasureWe
2016/02/26
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

新建作业20191011121223

2.编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound,Sally shouted,"By the Great Pumpkin,what was that!" #include<stdio.h>int main(){printf("\a");......

电子197朱妍
14分钟前
1
0
家庭作业——苗钰婷

2 编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that! #include<stdio.h>int main(){......

OSC_Okruuv
35分钟前
5
0
经典系统设计面试题解析:如何设计TinyURL(一)

原文链接: https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
36分钟前
4
0
2.面向对象设计原则(7条)

开闭原则 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 实现方法 可以通过“抽象约束、封装变化”来实...

Eappo_Geng
38分钟前
8
0
8086汇编基础 debug P命令 一步完成loop循环

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
42分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部