fine-socket模块
- web-socket全双工通信配置
依赖
- pom.xml
xml
<!--fine-socket-->
<dependency>
<groupId>cn.finemap</groupId>
<artifactId>fine-socket</artifactId>
<version>${fine.version}</version>
</dependency>创建子模块:fine-socket
- 在fine-parent中创建:fine-socket子模块
fine-socket
- 创建子模块:New > Module...
- 添加公共组件的依赖
- 维护工具类
依赖
- fine-socket/pom.xml
xml
<!-- 依赖 -->
<dependencies>
<!--websocket-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
</dependencies>WebSocket配置
- cn.finemap.socket.WebSocketConfig.java
java
@Configuration
@EnableWebSocket
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}维护父工程:fine-parent
fine-parent
- 添加该子模块
fine-socket使用
创建WebSocket接口
创建WebSocket接口
java
@Slf4j
@Component
@ServerEndpoint("/WSController")
public class WSController {
// 集合
private static Set<Session> sessions = Collections.synchronizedSet(new HashSet<>());
@OnOpen
public void onOpen(Session session){
try {
// 添加到集合中
sessions.add(session);
session.getBasicRemote().sendText("初始化发生广播");
} catch (Exception e) {
log.error("初始创建及发生广播失败: " + e.getMessage());
}
}
@OnClose
public void onClose(Session session) {
sessions.remove(session);
}
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("收到消息:" + message);
try {
session.getBasicRemote().sendText("回复");
} catch (IOException e) {
log.error("回复广播失败:" + e.getMessage());
}
}
/**
* 发生消息
*/
public static void send() {
//session.getBasicRemote().sendText("发生广播");
}
@OnError
public void onError(Session session, Throwable throwable) {
// 错误处理逻辑
log.error("WebSocket错误: " + throwable.getMessage());
}
}