chenyincheng
2023-01-07 2510046e4e09c929cdb0d5adcecde62fd3a20cf4
src/samples/sockteStomp.ts
@@ -3,7 +3,7 @@
import { ipcRenderer } from 'electron'
let stompClient: Stomp.Client | null=null
import { userInfoStore } from '@/stores/userInfo'
import { confingInfoStore } from '@/stores/StoresConfing'
import { patientInfoStore } from '@/stores/patient'
import {sockteStore} from '@/stores/sockteInfo'
import { result } from 'lodash'
@@ -17,7 +17,7 @@
    deviceName:string
    deviceType:string
}
let config={}
let devices:Array<device>=[]
let clientCode:string=''
/**
@@ -35,15 +35,18 @@
            switch(deviceInfo.deviceType){
                case '读卡器':
                    console.log('读卡器收到消息')
                    sockteStore().setdkqSockte(
                        {
                            deviceName:resultInfo.deviceNumber,
                            type:"读卡器",
                            result:resultInfo.result,
                            resultTime:resultInfo.resultTime,
                            state:2
                        }
                    )
                    const res=JSON.parse(resultInfo.result)
                    if(res.clientCode!==null){
                        sockteStore().setdkqSockte(
                            {
                                deviceName:resultInfo.deviceNumber,
                                type:"读卡器",
                                result:resultInfo.result,
                                resultTime:resultInfo.resultTime,
                                state:2
                            }
                        )
                    }
                    break
                case "体重秤":
                    console.log(resultInfo,'体重秤')
@@ -51,7 +54,7 @@
                        {
                            deviceName:resultInfo.deviceNumber,
                            type:"体重秤",
                            result:resultInfo.result,
                            result:Number(resultInfo.result).toString(),
                            resultTime:resultInfo.resultTime,
                            state:2
                        }
@@ -120,7 +123,8 @@
        deviceCode:resultInfo.deviceCode===null?"":resultInfo.deviceCode,
        hemoCode:resultInfo.hemoCode===null?"":resultInfo.hemoCode,
        pureWeight:resultInfo.pureWeight===null?"":resultInfo.pureWeight,
        datetime:da
        datetime:da,
        isScheduled:resultInfo.isScheduled
    }
    // 写入vuex里
    patientInfoStore().setpatientInfo(info)
@@ -128,7 +132,6 @@
// 订阅结果事件返回函数
const  callback = function(message:any) {
    console.log('接收到数据-----',message.body)
    if (message.body!==undefined) {
        const data=JSON.parse(message.body)
        writeResult(data)
@@ -173,31 +176,20 @@
    if(stompClient!==null){
        // 订阅患者信息事件
        stompClient.subscribe(`/queue/patient/info/${pcName}`,PatientCallback)
        // 订阅配置文件事件
        stompClient.subscribe(`/queue/workstation/config/set/${clientCode}/${pcName}`,configCallback)
        // 订阅配置文件事件已经弃用  现在不用更新本地配置文件了
        // stompClient.subscribe(`/queue/workstation/config/set/${clientCode}/${pcName}`,configCallback)
        devices.forEach(el=>{
            if(stompClient!==null)
            stompClient.subscribe(`/queue/${clientCode}/${el.deviceName}/result`,callback)
        })
        // 发送配置文件到服务端
        stompClient.send(`/app/workstation/config/set/${clientCode}/${pcName}`,{},JSON.stringify({"clientCode":clientCode,"machineName":pcName}))
        stompClient.send(`/app/workstation/config/set/${clientCode}/${pcName}`,{},
        JSON.stringify(config))
        
    }
    // 更新sockte链接状态
    sockteStore().setsockteIsLink(true)
    console.log(sockteStore().isLink)
    if(devices!==undefined &&devices!=null&&devices.length>0){
        // 更新sockte链接状态
        sockteStore().setsockteIsLink(true)
        console.log(sockteStore().isLink)
        console.log(devices)
        if(devices!==undefined&&devices!=null &&devices!=null &&devices.length>0){
            devices.forEach(de=>{
                if(stompClient!==null){
                    stompClient.subscribe(`/queue/${clientCode}/${de.deviceName}/result`,callback)
                    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){
@@ -214,9 +206,10 @@
    },60000)
}
// 创建客户端链接
const creatorClient=(devices2:any,clientCode2:any)=>{
    devices=devices2
    clientCode=clientCode2
const creatorClient=(configObj:any)=>{
    config=configObj
    devices=configObj.deviceList
    clientCode=configObj.clientCode
    console.log(devices,'设备列表','chong')
    const socket = new WebSocket('ws://hemobs.icoldchain.cn/broadcast')
    stompClient = Stomp.over(socket)
@@ -246,4 +239,4 @@
        stompClient.send(`/app/patient/info/set`,{},JSON.stringify(mode))
    }
}
export {creatorClient,sendPationCode,sendPationSet}
export {creatorClient,sendPationCode,sendPationSet,writeResult}