首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >convertAndSend与SendTo注解

convertAndSend与SendTo注解
EN

Stack Overflow用户
提问于 2018-11-07 04:35:05
回答 1查看 708关注 0票数 4

我有下面这段代码:

代码语言:javascript
复制
@Controller
@EnableScheduling
public class QuoteController {

    @Scheduled(fixedDelay=5000)
    @SendTo(value="/topic/quote")
    public String sendPrice() {
        return "message from scheduler";
    }
}

并且它不会将消息发送到通道。但是下面的代码可以工作:

代码语言:javascript
复制
@Controller
@EnableScheduling
public class QuoteController {
    @Autowired
    public SimpMessageSendingOperations messagingTemplate;

    @Scheduled(fixedDelay=5000)
    public String sendPrice() {
        messagingTemplate.convertAndSend("/topic/quote", "message from scheduler");
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-02-19 20:17:54

我们应该只通过websocket调用的函数来使用@SendTo注释,它是用@MessageMapping注释的平均函数。

如果您想以其他方式将消息发送到队列,则应该使用messagingTemplate.convertAndSend

@SendTo示例

代码语言:javascript
复制
@MessageMapping("/hello") // from websocket
@SendTo("/topic/bla")
public String foo1(String message) {
    return message;
}

.convertAndSend示例

代码语言:javascript
复制
@Autowired
private SimpMessagingTemplate template;

@GetMapping("/{msg}") //from GET request
public void foo2(@PathVariable String msg) {
    template.convertAndSend("/topic/bla", msg);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53179604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档