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

《Spring实战》摘录 - 28

作者头像
用户1335799
发布2019-08-23 10:52:47
5840
发布2019-08-23 10:52:47
举报

281

Q: #18.2-3 | WebSocket之上使用的STOMP,是什么?

A:

  • Simple Text Oriented Messaging Protocol
  • 简单的面向文本的消息传递协议

282

Q: #18.3-1 | Spring简单的STOMP代理是基于内存的,它模拟了STOMP代理的多项功能 A:

283

Q: #18.3-2 | STOMP代理中继会将STOMP消息的处理委托给一个真正的消息代理

A:

284

Q: #18.3-3 | 默认情况下,STOMP代理中继会假设代理监听localhost的61613端口,并且客户端的username和password均为“guest”。如果你的STOMP代理位于其他的服务器上,或者配置成了不同的客户端凭证,那么我们可以在启用STOMP代理中继的时候,需要配置这些细节信息:

A:

代码语言:javascript
复制
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {

  registry.enableStompBrokerRelay("/topic", "/queue")
          .setRelayHost("rabbit.someotherserver")
          .setRelayPort(62623)
          .setClientLogin("marcopolo")
          .setClientPasscode("letmein01");
  registry.setApplicationDestinationPrefixes("/app", "/foo");
}

285

Q: #18.3.2-1 | Spring能够使用某一个消息转换器将消息负载转换为Java类型

A:

  • ByteArrayMessageConverter --- 实现MIME类型为“application/octet-stream”的消息与byte[]之间的相互转换
  • MappingJackson2MessageConverter --- 实现MIME类型为“application/json”的消息与Java对象之间的相互转换
  • StringMessageConverter --- 实现MIME类型为“text/plain”的消息与String之间的相互转换

286

Q: #18.3.2-2 | 借助STOMP库,通过JavaScript发送消息

A:

代码语言:javascript
复制
var url = ‘http://' + window.location.host + ‘/stomp/marcopolo’;
var sock = new SockJS(url); //创建SockJS
var stomp = Stomp.over(sock); //创建STOMP客户端
var payload = JSON.stringify({‘message’ : ‘Marco!'});
stomp.connect(‘guest’, ‘guest’, function(frame){ //连接STOMP端点
    stomp.send(“/marco”, {}, payload); //发送消息
});

287

Q: #18.3.3-1 | 使用Spring和WebSocket/STOMP的话,该如何与基于浏览器的客户端通信呢?Spring提供了两种发送数据给客户端的方法:

A:

  • 作为处理消息或处理订阅的附带结果;
  • 使用消息模板。

288

Q: #18.3.3-2 | SimpMessagingTemplate能够在应用的任何地方发布消息

A:

代码语言:javascript
复制
package spittr;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.simp.SimpMessageSendingOperations;
import org.springframework.stereotype.Service;
@Service
public class SpittleFeedServiceImpl implements SpittleFeedService{
    private SimpMessageSendingOperations messaging;
    @Autowired
    public SpittleFeedServiceImpl(SimpMessageSendingOperations messaging){ //注入消息模版
        this.messaging = messaging;
    }
    public void broadcastSpittle(Spittle spittle){
        messaging.vovertAndSend(“/topic/spittlefeed”, spittle); //发送消息    
    }
}

289

Q: #18.4-1 | 在使用Spring和STOMP消息功能的时候,我们有三种方式利用认证用户:

A:

  • @MessageMapping和@SubscribeMapping标注的方法能够使用Principal来获取认证用户;
  • @MessageMapping、@SubscribeMapping和@MessageException方法返回的值能够以消息的形式发送给认证用户;
  • SimpMessagingTemplate能够发送消息给特定用户。

290

Q: #18.4-2 | 用户消息流会通过UserDestinationMessageHandler进行处理,它会将消息重路由到某个用户独有的目的地上

A:

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档