websocket 服务端实现例子
时间: 2024-10-06 11:03:13 浏览: 21
python实现WebSocket服务端过程解析
WebSocket服务端的实现通常涉及以下几个步骤,这里以Java的Spring WebSocket为例给出一个简单的例子:
首先,你需要在Spring配置文件(`application.properties` 或 `application.yml`)中启用WebSocket支持,并指定WebSocket处理器:
```properties
spring.web.socket.server.port=8080
spring.websocket.enabled=true
```
然后,在Spring Boot项目中创建一个WebSocket处理器类,比如`ChatWebSocketHandler`:
```java
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSockets;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
@Configuration
@EnableWebSockets
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new ChatWebSocketHandler(), "/chat");
}
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic"); // 设置主题发布/订阅模式
config.setApplicationDestinationPrefixes("/app"); // 应用消息前缀
}
}
```
在这个例子中,`ChatWebSocketHandler`是一个实现了`TextMessageHandler`接口的类,它负责处理文本消息,包括广播功能:
```java
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Component;
@Component
public class ChatWebSocketHandler {
@MessageMapping("/message")
@SendTo("/topic/chat") // 发布到所有连接
public String handleMessage(String message) {
return "Broadcasted to all users: " + message;
}
}
```
当你有新的消息到达 `/message` 路径时,`handleMessage` 方法会被调用,然后使用 `@SendTo` 注解将消息发送到所有连接到 `/topic/chat` 的客户端。
阅读全文