好的,我想我明白了。对于所有需要它的人,这里是答案:
首先,你需要将WS依赖项添加到pom.xml文件中。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
</dependency>
创建一个WS端点
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/stomp").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/");
config.setApplicationDestinationPrefixes("/app");
}
}
注意:我正在使用STOMP协议,因此客户端应该像这样连接
<script type="text/javascript">
$(document).ready(function() {
var messageList = $("#messages");
var socket = new SockJS('/stomp');
var stompClient = Stomp.over(socket);
stompClient.connect({ }, function(frame) {
stompClient.subscribe("/room.2", function(data) {
var message = data.body;
messageList.append("<li>" + message + "</li>");
});
});
});
</script>
然后,你可以简单地在组件上使用ws messenger进行连接
@Autowired
private SimpMessagingTemplate webSocket
并发送消息。
webSocket.convertAndSend(channel, new String(message.getBody()));
"/room." .concat(message.getRoom().getUid().toString())
。 - Luiz E.