前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Spring实战》摘录 - 27

《Spring实战》摘录 - 27

作者头像
用户1335799
发布2019-08-15 18:21:54
3950
发布2019-08-15 18:21:54
举报

271

Q: #17.3.3-1 | RabbitMQ连接工厂的作用是创建到RabbitMQ的连接

A: 如果你希望通过RabbitMQ发送消息,那么你可以将connectionFactorybean注入到AlertServiceImpl类中,并使用它来创建Connection,使用这个Connection来创建Channel,然后使用这个Channel发布消息到Exchange上

272

Q: #18.0-1 | 全双工意味着服务器可以发送消息给浏览器,浏览器也可以发送消息给服务器。Spring 4.0为WebSocket通信提供了支持,包括

A:

  • 发送和接收消息的低层级API;
  • 发送和接收消息的高级API;
  • 用来发送消息的模板;
  • 支持SockJS,用来解决浏览器端、服务器以及代理不支持WebSocket的问题。

273

Q: #18.1-1 | WebSocket是两个应用之间全双工的通信通道

A:

274

Q: #18.1-2 | MarcoHandler处理通过WebSocket传送的文本消息

A:

代码语言:javascript
复制
package marcopolo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.AbstractWebSocketHandler;

public class MarcoHandler extends AbstractWebSocketHandler{
    private static final Logger logger = LoggerFactory.getLogger(MarcoHandler.calss);
    
    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception{//处理文本消息
        logger.info("Received message: " + message.getPayload());

        Thread.sleep(2000);//模拟延时

        session.sendMessage(new TextMessage("Polo!"));//发送文本消息
    }
}

275

Q: #18.1-3 | 除了重载WebSocketHandler中所定义的五个方法以外,我们还可以重载AbstractWebSocketHandler中所定义的三个方法:

A:

  • handleBinaryMessage()
  • handlePongMessage()
  • handleTextMessage()

276

Q: #18.1-4 | 可以重载afterConnectionEstablished()和afterConnectionClosed(),来建立或关闭连接,的代码片段

A:

代码语言:javascript
复制
public void afterConnectionEstablished(WebSocketSession session)
    throws Exception {
  logger.info("Connection established");
}


@Override
public void afterConnectionClosed(
    WebSocketSession session, CloseStatus status) throws Exception {
  logger.info("Connection closed. Status: " + status);
}

277

Q: #18.1-5 | 借助websocket命名空间以XML的方式配置WebSocket

A:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:websocket="http://www.springframework.org/schema/websocket"
    xsi:schemaLocation="
        http://www.springframework.org/schema/websocket
        http://www.springframework.org/schema/websocket/spring-websocket.xsd
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <websocket:handlers>
        <websocket:mapping handler="marcoHandler" path="/marco" /> //将Marco Handle映射到“/marco”
    </websocket:handlers>

    <bean id="marcoHandler" class="marcopolo.MarcoHandler" /> //声明MarcoHandler bean
</beans>

278

Q: #18.1-6 | 连接到“marco” WebSocket的JavaScript客户端

A:

代码语言:javascript
复制
var url='ws://' + window.location.host + '/websocket/marco';
var sock = new WebSocket(url);//打开WebSocket

sock.onopen = function(){//处理连接开启事件
    console.log('Opening');
    sayMarco();
};

sock.onmessage = function(e){//处理信息
    console.log('Received message: ', e.data);
    setTimeout(function(){sayMarco()}, 2000);
}

sock.onclose = function(){//处理连接关闭事件
    console.log('Closing');
}

function sayMarco(){
    console.log('Sending Marco!');
    sock.send("Marco!");//发送消息
}

在本例中,URL使用了“ws://”前缀,表明这是一个基本的WebSocket连接。如果是安全WebSocket的话,协议的前缀将会是“wss://”。

279

Q: #18.2-1 | cdn,是什么?

A: 内容分发网络(英语:Content delivery network或Content distribution network,缩写:CDN)是指一种透过互联网互相连接的计算机网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、影片、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。

280

Q: #18.2-2 | SockJS所处理的URL是

A: 是“http://”或“https://”模式,而不是“ws://”和“wss://”

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 怀英的自我修炼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档