使用JAVA Websocket从服务器广播到客户端
我制作了一个spring引导服务器,它在给定端点上接受MachineData消息,并将它们写入postgres db。此外,我希望通过Websocket将这些消息广播到一个或多个angular客户端,因此我在控制器中添加了一个WebSocketConfig.java和以下内容:使用JAVA Websocket从服务器广播到客户端,java,spring,websocket,spring-websocket,Java,Spring,Websocket,Spring Websocket,我制作了一个spring引导服务器,它在给定端点上接受MachineData消息,并将它们写入postgres db。此外,我希望通过Websocket将这些消息广播到一个或多个angular客户端,因此我在控制器中添加了一个WebSocketConfig.java和以下内容: @RestController @RequestMapping("/machine_data") public class MachineDataController { private fi
@RestController
@RequestMapping("/machine_data")
public class MachineDataController
{
private final MachineDataRepository MachineDataRepository;
public MachineDataController(MachineDataRepository MachineDataRepository)
{
this.MachineDataRepository = MachineDataRepository;
}
@MessageMapping("/ws") // ???
@SendTo("/ws") // ???
public MachineData broadcastMessage(MachineData message) throws Exception {
return message;
}
@PostMapping("/create")
public MachineData createNewMachineData(@RequestBody MachineData machineData)
{
try {
this.broadcastMessage(machineData);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return MachineDataRepository.save(machineData);
}
}
客户端能够连接到“ws://localhost:8080/ws”,但没有消息到达。以下是我的WebsocketConfig:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws").setAllowedOrigins("*");
registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();
}
}
这里出了什么问题?我读过几篇关于JAVA Websockets聊天相关示例的文章,但我只想在创建db条目时将这些消息从服务器传递到客户端。
问候