文档章节

spring4新特性webSocket(二)

小车车
 小车车
发布于 2016/07/17 16:24
字数 669
阅读 191
收藏 11

1.接口描述

        很多我们要了解一个框架,需要从源码开始。一开始我搜索spring framework框架看看有没有关于接口的详细介绍,发现没有,所以只有自己翻源码进行整理。先整理出有哪些接口,然后对接口的详细方法进行介绍。

        webSocket中有:WebSocketConfigurer、WebSocketHandler、WebSocketHandlerRegistration、HandshakeInterceptor、WebSocketHandlerRegistry、WebSocketSession、WebSocketMessage<T>、WebSocketClient、WebSocketMessageBrokerConfigurer等,大致主要的就是这些,下面我们将详细介绍,这些接口的作用和有哪些方法需要实现。

2.接口详解

2.1 WebSocketConfigurer

Defines callback methods to configure the WebSocket request handling:定义回调方法来配置的WebSocket请求处理。

接口方法:void registerWebSocketHandlers(WebSocketHandlerRegistry registry);如果需要注册{@link WebSocketHandler}等包括SockJS后备选项。

2.2 WebSocketHandler

处理程序的WebSocket的消息和生命周期事件。同时此接口的实现在本地处理异常的地方。

接口方法:

void afterConnectionEstablished(WebSocketSession session) throws Exception;

WebSocket的交互后调用成功和WebSocket连接被打开,以备使用。

void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception;

当一个新的WebSocket消息到达时调用。

void handleTransportError(WebSocketSession session, Throwable exception) throws Exception;

处理来自底层的WebSocket的消息传输错误。

void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception;

调用后,WebSocket连接已被任何一方关闭,或者发生传输错误之后。虽然会话可能还专门开放,这取决于底层实现,在这一点上发送消息气馁,最有可能不会成功。

boolean supportsPartialMessages();

是否WebSocketHandler处理部分消息。

2.3 WebSocketHandlerRegistration

提供了用于配置WebSocket的处理方法。

WebSocketHandlerRegistration addHandler(WebSocketHandler handler, String... paths);

添加更多处理器将共享相同的配置(拦截器,SockJS配置等)

2.4 HandshakeInterceptor

拦截器的WebSocket握手请求。可以用来检查握手请求和响应以及传递属性的目标

boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response,
            WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception;

在处理前握手调用。

void afterHandshake(ServerHttpRequest request, ServerHttpResponse response,
            WebSocketHandler wsHandler, Exception exception);

握手完成后调用。响应状态和头表明握手,即它是否成功与否的结果。

2.5 WebSocketHandlerRegistry

提供了配置{@link WebSocketHandler}请求映射方法。

2.6 WebSocketSession

一个会话的WebSocket抽象。可发送消息通过WebSocket连接,并关闭它。

String getId();

URI getUri();

返回用于打开WebSocket连接的URL。

Map<String, Object> getHandshakeAttributes();

HttpHeaders getHandshakeHeaders();

2.7 WebSocketMessage

可以处理或WebSocket连接上发送的消息。

T getPayload();

返回消息的有效载荷。

boolean isLast();

是否返回完整的消息。

© 著作权归作者所有

小车车
粉丝 5
博文 94
码字总数 95384
作品 0
深圳
程序员
私信 提问
spring4 websocketjs默认的js库

使用spring4的websocket,配置了后,这个配置并不起效,当浏览器版不支持websocket的时候,使用的js还是spring4里面默认的路径

淡淡流逝
2015/10/19
249
0
spring4 websocketjs默认的js库

使用spring4的websocket,配置了后,这个配置并不起效,当浏览器版不支持websocket的时候,使用的js还是spring4里面默认的路径,怎么才能让设置的生效

淡淡流逝
2015/12/19
377
0
Dva 中使用 WebSocket

一、概述 Websocket 是 H5 自带的一个 API,随着越来越多的浏览器都自适应了 H5 的特性,许多浏览器也内置了 WebSocket API。也就是说 WebSocket 和 window、document 一样作为全局变量可以直...

dkvirus
2018/05/28
0
0
WebSoket初探并于SpringBoot整合

版权声明:本文版权归Jitwxs所有,欢迎转载,但未经作者同意必须保留原文链接。 https://blog.csdn.net/yuanlaijike/article/details/83002143 一、WebSocket 1.1 HTTP与WebSocket WebSocket...

Jitwxs
2018/10/10
0
0
通过Websocket与gRPC交互 | gRPC双向数据流的交互控制系列(2)

在本系列第一篇文章《gRPC双向数据流的交互控制系列(1).初步实现》(https://www.jianshu.com/p/5158d6686769)中,我们完成了通过控制台进行gRPC双向数据流交互控制的实验。但是只是用控制台交...

阿狸不歌
2018/07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
3
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
4
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
3
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部