websocket简单应用案例

本文介绍了websocket的简单应用案例,不是点对点案例而是在任何地方都可以使用,废话不多说直接上代码:

1.websocket配置信息:

//配置registry
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig2 implements WebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        // ⽤户可以订阅来⾃以"/topic"为前缀的消息,客户端只可以订阅这个前缀的主题
        config.enableSimpleBroker("/topic");
        // 客户端发送过来的消息,需要以"/app"为前缀,再经过Broker转发给响应的Controller
//        config.setApplicationDestinationPrefixes("/app");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
       //路径"/ws"被注册为STOMP端点,对外暴露,客户端通过该路径接⼊WebSocket服务
         registry.addEndpoint("/ws")
                .setAllowedOrigins("*")
                .withSockJS();
    }
}

2.代码实现调用:

import org.springframework.messaging.simp.SimpMessagingTemplate;
@Autowired
/**
*Spring的SimpMessagingTemplate能够在应⽤的任何地⽅发送消息,
*甚⾄不必以⾸先接收⼀条消息作为前提。
*使⽤SimpMessagingTemplate的最简单⽅式是将它
*(或者其接⼝SimpMessageSendingOperations)⾃动装配到所需的对象中。
*SimpMessagingTemplate可以为指定的⽤户发送消息。
*SimpMessagingTemplate还提供了convertAndSendToUser()⽅法。convertAndSendToUser()⽅法能够让我们给特定⽤户发送消息。
*simpMessageSendingOperations.convertAndSendToUser("1", "/message", "测试convertAndSendToUser"
*/
private SimpMessagingTemplate simpMessagingTemplate;

/**
 * 前端websocket 订阅路径 全路径 /topic/signal
 *解决SimpMessagingTemplate循环依赖问题:
 *   在 Controller 层去注⼊ SimpMessagingTemplate,
 *然后将其作为参数传给 Service层的 SocketService ⾥的⽅法去调⽤。
 */
@MessageMapping("/mileage")
public void mileage() {
}

simpMessagingTemplate.convertAndSend("/topic/mileage", msg);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值