diff --git a/jero-boot/jero-boot-modules/pom.xml b/jero-boot/jero-boot-modules/pom.xml
index ebfa573dd..fd4cbc16d 100644
--- a/jero-boot/jero-boot-modules/pom.xml
+++ b/jero-boot/jero-boot-modules/pom.xml
@@ -141,7 +141,10 @@
sevenzipjbinding
16.02-2.01
-
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/service/impl/OcrRestfulServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/service/impl/OcrRestfulServiceImpl.java
index 67f0876e3..f3d9585a1 100644
--- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/service/impl/OcrRestfulServiceImpl.java
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/service/impl/OcrRestfulServiceImpl.java
@@ -14,6 +14,7 @@ import com.jero.modules.ocr.util.UUIDUtils;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.vo.OcrVO;
+import com.jero.modules.websocket.service.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
@@ -58,6 +59,9 @@ public class OcrRestfulServiceImpl implements IOcrRestfulService {
@Autowired
private IOSSFileService ossFileService;
+ @Autowired
+ private WebSocketServer webSocketServer;
+
//请求处理文件url
@Value("${OCR.handleFileUrl}")
@@ -211,7 +215,10 @@ public class OcrRestfulServiceImpl implements IOcrRestfulService {
ocrRecordEO.setJsonFileCode(null);
ocrRecordEO.setUpdateTime(new Date());
ocrRecordEO.setResultContent("转换成功");
- ocrRecordEOService.updateById(ocrRecordEO);
+ boolean isSuccess = ocrRecordEOService.updateById(ocrRecordEO);
+ if(isSuccess){
+ webSocketServer.sendMessage();
+ }
//记录doc文件信息
OSSFile docFile = new OSSFile();
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/websocket/config/WebSocketConfig.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/websocket/config/WebSocketConfig.java
new file mode 100644
index 000000000..6c91155f5
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/websocket/config/WebSocketConfig.java
@@ -0,0 +1,15 @@
+package com.jero.modules.websocket.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
+
+//@Configuration
+public class WebSocketConfig {
+
+// @Bean
+ public ServerEndpointExporter serverEndpointExporter() {
+ return new ServerEndpointExporter();
+ }
+
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/websocket/service/WebSocketServer.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/websocket/service/WebSocketServer.java
new file mode 100644
index 000000000..c5e17282f
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/websocket/service/WebSocketServer.java
@@ -0,0 +1,37 @@
+package com.jero.modules.websocket.service;
+
+import javax.websocket.EndpointConfig;
+import javax.websocket.Session;
+
+
+public interface WebSocketServer {
+ /**
+ * 连接建立成功调用的方法
+ * @param session session 对象
+ */
+ public void onOpen(Session session, EndpointConfig config);
+
+ /**
+ * 断开连接方法
+ */
+ public void onClose(Session session);
+
+ /**
+ * 收到客户端消息后调用的方法
+ * @param session session 对象
+ * @param message 返回客户端的消息
+ */
+ public void onMessage(Session session, String message);
+
+ /**
+ * 发生异常时触发的方法
+ * @param session session 对象
+ * @param throwable 抛出的异常
+ */
+ public void onError(Session session,Throwable throwable);
+
+ /**
+ * 向单个客户端发送消息
+ */
+ public void sendMessage();
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/websocket/service/impl/WebsocketServerImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/websocket/service/impl/WebsocketServerImpl.java
new file mode 100644
index 000000000..fa0820642
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/websocket/service/impl/WebsocketServerImpl.java
@@ -0,0 +1,70 @@
+package com.jero.modules.websocket.service.impl;
+
+import com.jero.modules.websocket.service.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.ServerEndpoint;
+import java.io.IOException;
+import java.util.concurrent.CopyOnWriteArraySet;
+
+@Slf4j
+@ServerEndpoint(value = "/websocket/socketServer")
+@Component("webSocketService")
+public class WebsocketServerImpl implements WebSocketServer {
+
+ //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识
+ private static CopyOnWriteArraySet webSocketSet = new CopyOnWriteArraySet();
+ //这个session不是Httpsession,相当于用户的唯一标识,用它进行与指定用户通讯
+ private Session session=null;
+
+ @OnOpen
+ @Override
+ public void onOpen(Session session, EndpointConfig config) {
+ log.info("客户端 session id: "+session.getId()+ "打开一个连接");
+ try {
+ this.session = session;
+ webSocketSet.add(this); //加入set中
+ session.getBasicRemote().sendText("连接已建立");
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ @OnClose
+ @Override
+ public void onClose(Session session) {
+ // 客户端断开连接移除websocket对象
+ webSocketSet.remove(session.getId());
+ log.info("客户端断开连接,当前连接数:" + webSocketSet.size());
+ }
+
+ @OnMessage
+ @Override
+ public void onMessage(Session session, String message) {
+ log.info("客户端 session id: "+session.getId()+",消息:" + message);
+
+ // 此方法为客户端给服务器发送消息后进行的处理,可以根据业务自己处理,这里返回页面
+// sendMessage(session, "服务端返回" + message);
+ }
+
+ @OnError
+ @Override
+ public void onError(Session session, Throwable throwable) {
+ log.error("发生错误"+ throwable.getMessage(),throwable);
+ }
+
+ @Override
+ public void sendMessage() {
+ //群发消息
+ for(WebsocketServerImpl item: webSocketSet){
+ try {
+ item.session.getBasicRemote().sendText("1");
+ } catch (IOException e) {
+ e.printStackTrace();
+ continue;
+ }
+ }
+ }
+}
diff --git a/jero-boot/jero-boot-single-startup/src/main/java/com/jero/LawNioApplication.java b/jero-boot/jero-boot-single-startup/src/main/java/com/jero/LawNioApplication.java
index 04f8c36ab..207380e88 100644
--- a/jero-boot/jero-boot-single-startup/src/main/java/com/jero/LawNioApplication.java
+++ b/jero-boot/jero-boot-single-startup/src/main/java/com/jero/LawNioApplication.java
@@ -9,7 +9,9 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
import java.net.InetAddress;
import java.net.UnknownHostException;
@@ -44,4 +46,8 @@ public class LawNioApplication extends SpringBootServletInitializer {
"----------------------------------------------------------");
}
+ @Bean
+ public ServerEndpointExporter serverEndpointExporter() {
+ return new ServerEndpointExporter();
+ }
}