spring4新特性webSocket(二)

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();

是否返回完整的消息。

转载于:https://my.oschina.net/u/2380961/blog/713424

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值