Java 如何将rest请求发送到套接字

Java 如何将rest请求发送到套接字,java,spring,rest,websocket,Java,Spring,Rest,Websocket,我试图创建一个通过套接字发送请求的API 代码: 我不明白如何通过rest将请求发送到websocket。 有人能解释一下为什么当我向/x发送请求时,websocket没有得到新的HelloMessage?当你从同一个类调用另一个方法时,你只需要这样做:调用一个方法。此方法调用不关心被调用的方法是否具有注释 greeting()方法仅在从向/hello发布消息的websocket客户端调用时发送消息 要以编程方式发送消息,请使用SimpMessageTemplate: 如果要从应用程序的任何部分

我试图创建一个通过套接字发送请求的API

代码:

我不明白如何通过rest将请求发送到websocket。
有人能解释一下为什么当我向
/x
发送请求时,websocket没有得到
新的HelloMessage

当你从同一个类调用另一个方法时,你只需要这样做:调用一个方法。此方法调用不关心被调用的方法是否具有注释

greeting()方法仅在从向
/hello
发布消息的websocket客户端调用时发送消息

要以编程方式发送消息,请使用SimpMessageTemplate:

如果要从应用程序的任何部分向连接的客户端发送消息,该怎么办?任何应用程序组件都可以向brokerChannel发送消息。最简单的方法是注入SimpMessageTemplate并使用它发送消息。通常,您会按类型注入它,如下例所示:


定义“不工作”。@davenewt在侦听套接字的客户端上不获取消息您可以添加客户端代码吗?可能与此有关:)
@Controller
public class GreetingController {
    @GetMapping("/x")
    public void send() {
        greeting(new HelloMessage("Admin", "bla"));
    }
    @MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public Greeting greeting(HelloMessage message) {
        return new Greeting(HtmlUtils.htmlEscape(message.getName() + ": " + message.getMsg()));
    }
}
@Controller
public class GreetingController {

    private SimpMessagingTemplate template;

    @Autowired
    public GreetingController(SimpMessagingTemplate template) {
        this.template = template;
    }

    @RequestMapping(path="/greetings", method=POST)
    public void greet(String greeting) {
        String text = "[" + getTimestamp() + "]:" + greeting;
        this.template.convertAndSend("/topic/greetings", text);
    }

}