523096025 hace 1 año
padre
commit
c551833d58

+ 5 - 1
pom.xml

@@ -22,7 +22,11 @@
             <version>2.3.1.RELEASE</version>
         </dependency>
 
-
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.78</version>
+        </dependency>
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-generator</artifactId>

+ 1 - 2
src/main/java/com/huimv/wine/entity/vo/WsEvent.java

@@ -1,10 +1,9 @@
 package com.huimv.wine.entity.vo;
 
 import lombok.Data;
-import org.springframework.beans.factory.annotation.Autowired;
 
 @Data
 public class WsEvent {
     private  String event;
-    private  Object message;
+    private  Object data;
  }

+ 9 - 11
src/main/java/com/huimv/wine/utils/WebsocketManagerUtil.java

@@ -1,5 +1,8 @@
 package com.huimv.wine.utils;
 
+import com.alibaba.fastjson.JSON;
+import com.huimv.wine.entity.vo.WsEvent;
+
 import javax.websocket.RemoteEndpoint;
 import javax.websocket.Session;
 import java.util.Map;
@@ -32,26 +35,21 @@ public class WebsocketManagerUtil {
     SESSIONS.remove ( userId );
   }
 
-  /**
-   * 给单个用户推送消息
-   * @param session
-   * @param message
-   */
-  public static void sendMessage(Session session, String message){
+  public static void sendMessage(Session session, WsEvent wsEvent){
     if(session == null){
       return;
     }
     // 同步
     RemoteEndpoint.Async async = session.getAsyncRemote ();
-    async.sendText ( message );
+    System.out.println(wsEvent);
+
+    async.sendText (JSON.toJSONString(wsEvent));
   }
 
+
   /**
    * 向所有在线人发送消息
    * @param message
    */
-  public static void sendMessageForAll(String message) {
-    //jdk8 新方法
-    SESSIONS.forEach((sessionId, session) -> sendMessage(session, message));
-  }
+
 }

+ 12 - 15
src/main/java/com/huimv/wine/utils/WebsocketSellerUtil.java

@@ -1,5 +1,11 @@
 package com.huimv.wine.utils;
 
+import com.alibaba.fastjson.JSON;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.util.JSONPObject;
+import com.huimv.wine.entity.vo.WsEvent;
+import com.mysql.cj.xdevapi.JsonParser;
+
 import javax.websocket.RemoteEndpoint;
 import javax.websocket.Session;
 import java.util.Map;
@@ -32,26 +38,17 @@ public class WebsocketSellerUtil {
     SESSIONS.remove ( userId );
   }
 
-  /**
-   * 给单个用户推送消息
-   * @param session
-   * @param message
-   */
-  public static void sendMessage(Session session, String message){
+
+  public static void sendMessage(Session session, WsEvent wsEvent){
     if(session == null){
       return;
     }
     // 同步
     RemoteEndpoint.Async async = session.getAsyncRemote ();
-    async.sendText ( message );
-  }
+    System.out.println(wsEvent);
 
-  /**
-   * 向所有在线人发送消息
-   * @param message
-   */
-  public static void sendMessageForAll(String message) {
-    //jdk8 新方法
-    SESSIONS.forEach((sessionId, session) -> sendMessage(session, message));
+    async.sendText (JSON.toJSONString(wsEvent));
   }
+
+
 }

+ 10 - 15
src/main/java/com/huimv/wine/utils/WebsocketWorkerUtil.java

@@ -1,5 +1,8 @@
 package com.huimv.wine.utils;
 
+import com.alibaba.fastjson.JSON;
+import com.huimv.wine.entity.vo.WsEvent;
+
 import javax.websocket.RemoteEndpoint;
 import javax.websocket.Session;
 import java.util.Map;
@@ -32,26 +35,18 @@ public class WebsocketWorkerUtil {
     SESSIONS.remove ( userId );
   }
 
-  /**
-   * 给单个用户推送消息
-   * @param session
-   * @param message
-   */
-  public static void sendMessage(Session session, String message){
+
+  public static void sendMessage(Session session, WsEvent wsEvent){
     if(session == null){
       return;
     }
     // 同步
     RemoteEndpoint.Async async = session.getAsyncRemote ();
-    async.sendText ( message );
-  }
+    System.out.println(wsEvent);
 
-  /**
-   * 向所有在线人发送消息
-   * @param message
-   */
-  public static void sendMessageForAll(String message) {
-    //jdk8 新方法
-    SESSIONS.forEach((sessionId, session) -> sendMessage(session, message));
+    async.sendText (JSON.toJSONString(wsEvent));
   }
+
+
+
 }

+ 11 - 4
src/main/java/com/huimv/wine/ws/SellerController.java

@@ -2,8 +2,10 @@ package com.huimv.wine.ws;
 
 import com.fasterxml.jackson.databind.util.BeanUtil;
 import com.huimv.wine.entity.Device;
+import com.huimv.wine.entity.Wine;
 import com.huimv.wine.entity.vo.WsEvent;
 import com.huimv.wine.mapper.DeviceMapper;
+import com.huimv.wine.mapper.WineMapper;
 import com.huimv.wine.utils.SpringContextUtil;
 import com.huimv.wine.utils.WebsocketSellerUtil;
 import org.springframework.stereotype.Component;
@@ -32,6 +34,8 @@ public class SellerController extends TextWebSocketHandler {
 
         //需要用这种方式注入
         DeviceMapper deviceMapper = SpringContextUtil.getBean(DeviceMapper.class);
+        WineMapper wineMapper = SpringContextUtil.getBean(WineMapper.class);
+
         Device device =  deviceMapper.getByDeviceId(seq);
         if (ObjectUtils.isEmpty(device)){
             device = new Device();
@@ -44,8 +48,7 @@ public class SellerController extends TextWebSocketHandler {
 
         // 添加到session的映射关系中
         WebsocketSellerUtil.addSession(seq, session);
-
-        infoOfDevice(session,deviceMapper);
+        infoOfDevice(wineMapper,device,session,deviceMapper);
     }
 
     /**
@@ -58,7 +61,6 @@ public class SellerController extends TextWebSocketHandler {
         // 删除映射关系
         WebsocketSellerUtil.removeSession(seq);
 
-//        WebsocketSellerUtil.sendMessageForAll(message);
     }
 
 
@@ -91,7 +93,12 @@ public class SellerController extends TextWebSocketHandler {
         throwable.printStackTrace();
     }
 
-    public void   infoOfDevice(Session session, DeviceMapper deviceMapper) {
+    public void   infoOfDevice(WineMapper wineMapper,Device device,Session session, DeviceMapper deviceMapper) {
+
+//        Wine wine = wineMapper.selectById(device.getWine1());
+//        wineMapper.selectById( device.getWine2());
+//        wineMapper.selectById( device.getWine3());
+//        wineMapper.selectById( device.getWine4());
 
 
     }