专做衬衣的网站,微信营销的特点,用vs做购物网站下载,ps做网站画布大小是多少通过Spring框架的spring-messaging和spring-websocket模块#xff0c;提供了对WebSocket上STOMP的支持。一但你添加了这些依赖项#xff0c;你就可以像下面这个示例一样#xff0c;通过WebSocket公开一个STOMP端点#xff1a;
import org.springframework.web.socket.conf…通过Spring框架的spring-messaging和spring-websocket模块提供了对WebSocket上STOMP的支持。一但你添加了这些依赖项你就可以像下面这个示例一样通过WebSocket公开一个STOMP端点
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;Configuration
EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {Overridepublic void registerStompEndpoints(StompEndpointRegistry registry) {registry.addEndpoint(/portfolio); // #1}Overridepublic void configureMessageBroker(MessageBrokerRegistry config) {config.setApplicationDestinationPrefixes(/app); // #2config.enableSimpleBroker(/topic, /queue); // #3}
}/portfolio是WebSocket或SockJS客户端用于WebSocket握手的HTTP URL。destination请求头的值以/app开头的STOMP消息将被路由到Controller类中MessageMapping 注释的方法。使用内置的消息代理进行订阅和广播并将destination请求头的值以/topic或/queue开头的消息路由到消息代理。
下面这个示例通过XML来配置endpoint
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:websockethttp://www.springframework.org/schema/websocketxsi:schemaLocationhttp://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/websockethttps://www.springframework.org/schema/websocket/spring-websocket.xsdwebsocket:message-broker application-destination-prefix/appwebsocket:stomp-endpoint path/portfolio /websocket:simple-broker prefix/topic, /queue//websocket:message-broker/beans对于本地内存消息代理/topic和/queue前缀没有任何特殊含义。它们只是一种惯例用于区分发布-订阅与点对点消息传递即许多订阅者与一个消费者。当你使用外部代理时请查看相应代理的STOMP介绍页面去了解它支持STOMP哪种类型的destinations和前缀。 如果要从浏览器连接服务器对于STOMP协议你可以使用[stomp-js/stompjs](https://github.com/stomp-js/stompjs) 库这是最活跃的JavaScript库。
以下示例代码是基于它
const stompClient new StompJs.Client({brokerURL: ws://domain.com/portfolio,onConnect: () {*// ...*}});或者如果您通过SockJS连接您可以在服务器端使用registry.addEndpoint(/portfolio).withSockJS()启用SockJS Fallback并在JavaScript端按照这些指令操作。
请注意前面示例中的stompClient不需要指定login和passcode 消息头。即使这样做了它们也会在服务器端被忽略或者更确切地说被覆盖。有关身份验证的更多信息请参见连接到代理和身份验证。
有关更多示例代码请参见
Using WebSocket to build an interactive web application — a getting started guide.Stock Portfolio — a sample application.使用WebSocket构建交互式Web应用程序 — 入门指南。股票投资组合 — 示例应用程序。