From 359a3d84ba7d9378cb183710db221580d7ba845a Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 04 七月 2022 16:55:35 +0800
Subject: [PATCH] up
---
src/samples/sockteStomp.ts | 95 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 78 insertions(+), 17 deletions(-)
diff --git a/src/samples/sockteStomp.ts b/src/samples/sockteStomp.ts
index 1726050..eff72a3 100644
--- a/src/samples/sockteStomp.ts
+++ b/src/samples/sockteStomp.ts
@@ -1,4 +1,5 @@
import Stomp from 'stompjs'
+import os from 'os'
var stompClient: Stomp.Client | null=null
import { userInfoStore } from '@/stores/userInfo'
@@ -14,7 +15,10 @@
let devices:Array<device>=[]
let clientCode:string=''
-
+/**
+ * 保存结果到vuex
+ * @param resultInfo 结果写入
+ */
const writeResult=(resultInfo:any)=>{
if(devices.length>0){
const deviceInfo=devices.find(de=>{de.deviceName===resultInfo.deviceName})
@@ -27,7 +31,7 @@
type:"读卡器",
result:resultInfo.result,
resultTime:resultInfo.resultTime,
- state:true
+ state:0
}
)
break
@@ -38,7 +42,7 @@
type:"体重秤",
result:resultInfo.result,
resultTime:resultInfo.resultTime,
- state:true
+ state:0
}
)
break
@@ -49,7 +53,47 @@
type:"血压计",
result:resultInfo.result,
resultTime:resultInfo.resultTime,
- state:true
+ state:0
+ }
+ )
+ break
+ default:
+ console.log('有配置类型没有匹配')
+ }
+ }
+ }
+
+}
+const writeStatu=(resultInfo:any)=>{
+ if(devices.length>0){
+ const deviceInfo=devices.find(de=>{
+ console.log(de.deviceName,resultInfo.deviceName)
+ return de.deviceName===resultInfo.deviceName
+ })
+ if(deviceInfo!==undefined){
+ switch(deviceInfo.deviceType){
+ case '读卡器':
+ sockteStore().setdkqSockte(
+ {
+ deviceName:resultInfo.deviceName,
+ type:"读卡器",
+ result:resultInfo.result,
+ resultTime:resultInfo.resultTime,
+ state:0
+ }
+ )
+ break
+ case "体重秤":
+ sockteStore().setweightState(resultInfo.status)
+ break
+ case "血压计":
+ sockteStore().setxyjSockte(
+ {
+ deviceName:resultInfo.deviceName,
+ type:"血压计",
+ result:resultInfo.result,
+ resultTime:resultInfo.resultTime,
+ state:0
}
)
break
@@ -72,29 +116,41 @@
alert("接收数据异常");
}
};
-const callbackState=function(message:any){
+const callbackState=function(message:any) {
if (message.body) {
const data=JSON.parse(message.body)
- if(data.deviceName)
+ if(data){
+ writeStatu(data)
+ }
console.log(data,'设备心跳包数据')
- writeResult(data)
- } else {
- alert("接收数据异常");
}
}
+const PatientCallback=function(message:any){
+ if (message.body) {
+ const data=JSON.parse(message.body)
+ console.log(data,'患者信息读取')
+ }
+
+}
const connectCallback=function(){
- console.log("链接成功",stompClient)
+ const pcName= os.hostname()
+ // 订阅患者信息服务
+ stompClient.subscribe(`/queue/patient/info/${pcName}`,PatientCallback)
+ console.log("链接成功",stompClient,pcName)
// 更新sockte链接状态
sockteStore().setsockteIsLink(true)
console.log(sockteStore().isLink)
- if(stompClient!==null){
- if(devices.length>0){
- devices.forEach(de=>{
+ console.log(devices)
+ if(devices.length>0){
+ devices.forEach(de=>{
+ if(stompClient!==null){
stompClient.subscribe(`/queue/${clientCode}/${de.deviceName}/result`,callback)
+ // /queue/{clientCode}/{deviceName}/keepalive
+ stompClient.subscribe(`/queue/${clientCode}/${de.deviceName}/keepalive`,callbackState)
stompClient.send(`/app/device/request/${clientCode}/${de.deviceName}`, {}, JSON.stringify({"deviceNumber":de.deviceName}));
- })
- }
-
+
+ }
+ })
}
}
const error_callback=function(error:any){
@@ -118,4 +174,9 @@
stompClient.connect({}, connectCallback,error_callback)
}
-export {creatorClient}
+const sendPationCode=(codeStr:string)=>{
+ if(stompClient!==null){
+ stompClient.send(`/app/patient/info/get/${os.hostname()}`,{},codeStr)
+ }
+}
+export {creatorClient,sendPationCode}
--
Gitblit v1.8.0