java接收websocket消息
时间: 2024-09-26 15:10:00 浏览: 51
在Java中,WebSocket是一种全双工的通信协议,用于在客户端浏览器和服务器之间建立持久性的连接。Java提供了多个库来支持WebSocket,如Spring Websocket、Jetty和Netty等。
以下是使用Spring WebSocket的一个简单示例:
1. 首先,你需要添加Spring WebSocket依赖到你的`pom.xml`文件中:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
```
2. 创建一个WebSocket配置类,通常继承`WebMvcConfigurer`并实现`WebSocketMessageBrokerConfigurer`:
```java
@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("/chat").withSockJS();
}
}
```
这里设置了两个主题前缀 `/topic` 和 `/app`,分别用于发布和订阅消息。
3. 创建一个处理WebSocket请求的处理器类:
```java
@Controller
public class ChatController {
@MessageMapping("/chat")
@SendTo("/topic/chat")
public ChatMessage sendMessage(ChatMessage message) throws Exception {
// 您可以在这里处理发送的消息,例如保存到数据库或广播给其他客户端
return message;
}
}
```
`@MessageMapping`注解告诉Spring这是一个接受WebSocket消息的方法,`@SendTo`则指定消息应该发送到哪个主题。
4. 客户端连接和发送消息:
在HTML页面上使用JavaScript库(如sockjs-client和stomp.js),你可以创建一个WebSocket连接并发送消息:
```javascript
var socket = new SockJS('/chat');
var stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
console.log('Connected:', frame);
stompClient.send('/app/chat', {}, JSON.stringify({ message: 'Hello from client' }));
});
```
阅读全文