spring websocket让页面实时获取数据

来源:互联网 发布:成本测算软件 编辑:程序博客网 时间:2024/06/05 04:57
1,依赖包加上<dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-websocket</artifactId>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-messaging</artifactId></dependency>

2,添加2个类

package com.streetlight.websocket;import org.springframework.context.annotation.Configuration;import org.springframework.messaging.simp.config.MessageBrokerRegistry;import org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer;import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;import org.springframework.web.socket.config.annotation.StompEndpointRegistry;@Configuration@EnableWebSocketMessageBrokerpublic class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {@Overridepublic void registerStompEndpoints(StompEndpointRegistry registry) {registry.addEndpoint("/socket").withSockJS();}@Overridepublic void configureMessageBroker(MessageBrokerRegistry registry) {registry.enableSimpleBroker("/topic");//给 /topic 命名空间下发数据registry.setApplicationDestinationPrefixes("/app");//客户端发向服务端请求路径的前缀}}

package com.streetlight.websocket;import org.springframework.messaging.handler.annotation.MessageMapping;import org.springframework.messaging.handler.annotation.SendTo;import org.springframework.stereotype.Controller;@Controllerpublic class WebSocketController {@MessageMapping("/request")//接受客户端/app/request的请求@SendTo("/topic/*")public String greeting() throws Exception {return new String("WebSocketController");}}
然后需要一个发送模版, 如下

@Compentpublic class Handler{    @Autowired    private SimpMessagingTemplate mesTemp;    public void updateAndSendMsg() {        mesTemp.convertAndSend("/topic/hello", "helloworld");    }}
这时候在网页上需要添加连接websocket  server的代码

        <script type="text/javascript">        $(function(){            var socket = new SockJS('/项目名/socket');            var stompClient = Stomp.over(socket);            stompClient.connect({}, function(frame) {//                stompClient.subscribe('/topic/hello', function(message){//注意这里的'/topic/hello'与上面Handler类updateAndSendMsg方法中的一样                    console.log("msg :" + message)                });            });        })        </script>
当连接上server后stompClient.subscribe会监听和接受来自‘/topic/hello’的数据


到这里就配置完成了!我这边是java程序收设备发过来的UDP消息,一收到消息就调用Handler类中的updateAndSendMsg方法!

推荐个发包程序:netAssistant


参考 : http://www.lxway.com/4002114921.htm

0 0
原创粉丝点击