john.hong пре 2 година
родитељ
комит
922e67f77e
5 измењених фајлова са 41 додато и 18 уклоњено
  1. 2 0
      package.json
  2. 2 0
      public/index.html
  3. 26 17
      src/App.vue
  4. 5 0
      vue.config.js
  5. 6 1
      yarn.lock

+ 2 - 0
package.json

@@ -12,12 +12,14 @@
     "@better-scroll/core": "^2.4.2",
     "@better-scroll/observe-dom": "^2.4.2",
     "@better-scroll/pull-up": "^2.4.2",
+    "@stomp/stompjs": "^7.0.0",
     "axios": "^0.27.2",
     "crypto-js": "^4.1.1",
     "js-md5": "^0.7.3",
     "lodash": "^4.17.21",
     "moment": "^2.29.4",
     "sa-sdk-javascript": "^1.24.13",
+    "sockjs-client": "^1.6.1",
     "uuid": "^9.0.0",
     "vant": "^2.12.50",
     "vue": "^2.7.14",

+ 2 - 0
public/index.html

@@ -53,6 +53,8 @@
       // var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
       // document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
   </script>
+  <!-- <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script> -->
+  <!-- <script src="https://cdn.jsdelivr.net/npm/@stomp/stompjs@7.0.0-beta2/bundles/stomp.umd.min.js"></script> -->
 </head>
 
 <body>

+ 26 - 17
src/App.vue

@@ -24,11 +24,14 @@
 </template>
 <script>
 import { createAxiosByinterceptors } from '@/api/request';
-import Stomp from '@/lib/stompjs';
+// import Stomp from '@stomp/stompjs';
+import Stomp from '@stomp/stompjs';
 import loginMinix from '@/mixins/login';
 import { Decrypt, Encrypt } from '@/utils/crypto';
 import { getIsMin, getIsWxh5, getUrlParams } from '@/utils/index.js';
-import SockJS from '@/utils/sockjs';
+import { Client } from "@stomp/stompjs/esm6/client";
+// import SockJS from '@/utils/sockjs';
+import SockJS from 'sockjs-client';
 import uni from '@/utils/uniHooks';
 import { getAppIdByGroupIdAndMallId } from '@/utils/index.js';
 import sensorsFn from '@/plugins/sensors'
@@ -110,8 +113,13 @@ export default {
     wss() {
       return new Promise((resolve, reject) => {
         try {
-          const socket = new SockJS(`${this.getUrl()}/hafengWebsocket?token=${window.token}`);
-          window.stompClient = Stomp.over(socket);
+          // Typical usage with SockJS
+         Stomp.Client.webSocketFactory = function () {
+           return new SockJS(`${this.getUrl()}/hafengWebsocket?token=${window.token}`);
+         };
+          // const socket = new SockJS(`${this.getUrl()}/hafengWebsocket?token=${window.token}`);
+          // window.stompClient = Stomp.over(socket);
+          window.stompClient = Stomp.Client;
           window.stompClient.debug = null;
           this.windowSendInit();
           window.stompClient.connect({}, (frame) => {
@@ -140,19 +148,20 @@ export default {
          */
         if (!type) return;
         // console.log(259, '微信支付的options', options);
-        window.stompClient.send(
-          '/sendToWechat',
-          {},
-          JSON.stringify({
-            token,
-            data: Encrypt(
-              JSON.stringify({
-                type: type,
-                funcName,
-                options,
-              })
-            ),
-          })
+        window.stompClient.publish(
+          {
+            destination: '/sendToWechat',
+            body: JSON.stringify({
+              token,
+              data: Encrypt(
+                JSON.stringify({
+                  type: type,
+                  funcName,
+                  options,
+                })
+              ),
+            })
+          }
         );
       };
 

+ 5 - 0
vue.config.js

@@ -89,6 +89,11 @@ module.exports = {
       },
     },
   },
+ transpileDependencies: [
+    // can be string or regex
+    '@stomp/stompjs',
+    // /other-dep/
+  ],
   devServer: {
     proxy: {
       '/profileApi': {

+ 6 - 1
yarn.lock

@@ -1338,6 +1338,11 @@
   resolved "https://nexus-internal.kerryonvip.com/repository/kerry-npm-group/@soda/get-current-script/-/get-current-script-1.0.2.tgz#a53515db25d8038374381b73af20bb4f2e508d87"
   integrity sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==
 
+"@stomp/stompjs@^7.0.0":
+  version "7.0.0"
+  resolved "https://nexus-internal.kerryonvip.com/repository/kerry-npm-group/@stomp/stompjs/-/stompjs-7.0.0.tgz#46b5c454a9dc8262e0b20f3b3dbacaa113993077"
+  integrity sha512-fGdq4wPDnSV/KyOsjq4P+zLc8MFWC3lMmP5FBgLWKPJTYcuCbAIrnRGjB7q2jHZdYCOD5vxLuFoKIYLy5/u8Pw==
+
 "@types/babel__core@^7.1.7":
   version "7.1.19"
   resolved "https://nexus-internal.kerryonvip.com/repository/kerry-npm-group/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460"
@@ -8738,7 +8743,7 @@ snapdragon@^0.8.1:
     source-map-resolve "^0.5.0"
     use "^3.1.0"
 
-sockjs-client@^1.5.0:
+sockjs-client@^1.5.0, sockjs-client@^1.6.1:
   version "1.6.1"
   resolved "https://nexus-internal.kerryonvip.com/repository/kerry-npm-group/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806"
   integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==