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