1、STOMP协议学习过程
(1)、什么是stomp?主要用来做什么?
(2)unbuntu RabbitMQ 安装
[E]代表插件完整,可以运行
[e
]
代表需要依赖别的插件运行
注:^@代表 提交,按 Ctrl+@;Linux的shell中\下一行接着上一行;61613是stomp的默认端口;空行也是必须的
订阅者:
nc localhost 61613
CONNECT
^@
.......(这里是打印出服务的信息)
SUBSCRIBE
destination:/queue/test
发布者
nc localhost 61613
CONNECT
^@
.......(这里是打印出服务的信息)
SEND
destination:/queue/test
this is message!
^@
registry.enableSimpleBroker("/topic", "/user");这句话表示在topic和user这两个域上可以向客户端发消息。
registry.setUserDestinationPrefix("/user");这句话表示给指定用户发送一对一的主题前缀是"/user"。
registry.setApplicationDestinationPrefixes("/app");这句话表示客户单向服务器端发送时的主题上面需要加"/app"作为前缀。
就比如要向这个主题java: @MessageMapping("/hello") 发送新消息,就要 js: stompClient.send("/app/hello"......);加上前缀
stompEndpointRegistry.addEndpoint("/websocket").setAllowedOrigins("*").withSokJS();这个和客户端创建连接时的url有关,其中setAllowedOrigins()方法表示允许连接的域名,withSockJS()方法表示支持以SockJS方式连接服务器。