tcp独立进程

This commit is contained in:
lixiao 2025-05-19 11:36:10 +08:00
parent 54925cad67
commit 524b0f354e
3 changed files with 13 additions and 10 deletions

View File

@ -7,15 +7,12 @@ let tcpClient: TcpClient = null
let udpGps1: UdpClientByCenter = null let udpGps1: UdpClientByCenter = null
let udpGps2: UdpClientByCenter = null let udpGps2: UdpClientByCenter = null
let tick: number let tick: number
let lastTime = new Date() let lastTime: Date
export async function getTCP(flag = false) { export async function getTCP(flag = false) {
if (tcpClient && !flag) { if (tcpClient && !flag) {
return return
} }
if (flag) {
console.log("tcp 重启服务")
}
const fileUtil = new FileUtil(globalThis.context) const fileUtil = new FileUtil(globalThis.context)
const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt');
if (data === '' || data === undefined) { if (data === '' || data === undefined) {
@ -24,9 +21,10 @@ export async function getTCP(flag = false) {
const result = JSON.parse(data) const result = JSON.parse(data)
console.log("tcp init", result.tcplocalIp, result.tcplocalIpPort, result.tcpOppositeIp, result.tcpOppositePort) console.log("tcp init", result.tcplocalIp, result.tcplocalIpPort, result.tcpOppositeIp, result.tcpOppositePort)
tcpClient = new TcpClient(result.tcplocalIp, result.tcplocalIpPort, result.tcpOppositeIp, result.tcpOppositePort) tcpClient = new TcpClient(result.tcplocalIp, result.tcplocalIpPort, result.tcpOppositeIp, result.tcpOppositePort)
if (!udpGps1) {
udpGps1 = new UdpClientByCenter(result.udplocalIp, (Number(result.udplocalIpPort) + 10).toString(), result.udpOppositeIp, result.udpOppositeIpPort) udpGps1 = new UdpClientByCenter(result.udplocalIp, (Number(result.udplocalIpPort) + 10).toString(), result.udpOppositeIp, result.udpOppositeIpPort)
console.log("tcp udp port", result.udplocalIp, (Number(result.udplocalIpPort) + 10).toString(), result.udpOppositeIp, result.udpOppositeIpPort) }
if (result.udpOppositeIp2) { if (!udpGps2 && result.udpOppositeIp2) {
udpGps2 = new UdpClientByCenter(result.udplocalIp, (Number(result.udplocalIpPort) + 11).toString(), result.udpOppositeIp2, (Number(result.udpOppositeIpPort) + 1).toString()) udpGps2 = new UdpClientByCenter(result.udplocalIp, (Number(result.udplocalIpPort) + 11).toString(), result.udpOppositeIp2, (Number(result.udpOppositeIpPort) + 1).toString())
} }
udpGps1?.bindUdp() udpGps1?.bindUdp()
@ -34,7 +32,7 @@ export async function getTCP(flag = false) {
await tcpClient?.bindTcp() await tcpClient?.bindTcp()
await tcpClient?.connectTcp() await tcpClient?.connectTcp()
clearInterval(tick) clearInterval(tick)
lastTime = new Date()
tick = setInterval(() => { tick = setInterval(() => {
let now = new Date() let now = new Date()
if (now.getTime() - lastTime.getTime() > (1000 * 6)) { if (now.getTime() - lastTime.getTime() > (1000 * 6)) {

View File

@ -40,6 +40,7 @@ export default class TcpClient {
resolve(true) resolve(true)
}).catch(err => { }).catch(err => {
console.log("tcp bind error: ", JSON.stringify(err)) console.log("tcp bind error: ", JSON.stringify(err))
console.log("tcp 重启服务")
getTCP(true) getTCP(true)
reject(err) reject(err)
}) })
@ -53,6 +54,7 @@ export default class TcpClient {
address: this.oppositeIp, port: Number(this.oppositeIpPort), family: 1 address: this.oppositeIp, port: Number(this.oppositeIpPort), family: 1
}, timeout: 1000 * 15 }, timeout: 1000 * 15
}).then(() => { }).then(() => {
console.log("tcp connect success")
return this.tcp.setExtraOptions({ return this.tcp.setExtraOptions({
keepAlive: true keepAlive: true
}) })
@ -60,6 +62,7 @@ export default class TcpClient {
resolve(true) resolve(true)
}).catch(err => { }).catch(err => {
console.log("tcp connect or keepAlive error: ", JSON.stringify(err)) console.log("tcp connect or keepAlive error: ", JSON.stringify(err))
console.log("tcp 重启服务")
getTCP(true) getTCP(true)
reject(err) reject(err)
}) })
@ -67,10 +70,11 @@ export default class TcpClient {
} }
sendMsg(msg: string) { sendMsg(msg: string) {
this.tcp.send({ return this.tcp.send({
data: msg data: msg
}).catch(err => { }).catch(err => {
console.log("tcp send error: ", JSON.stringify(err)) console.log("tcp send error: ", JSON.stringify(err))
console.log("tcp 重启服务")
this.tcpSendNum++ this.tcpSendNum++
if (this.tcpSendNum > 10) { if (this.tcpSendNum > 10) {
getTCP(true) getTCP(true)
@ -105,6 +109,7 @@ export default class TcpClient {
resolve(true) resolve(true)
}).catch(err => { }).catch(err => {
console.log('close tcp error: ', JSON.stringify(err)) console.log('close tcp error: ', JSON.stringify(err))
console.log("tcp 重启服务")
getTCP(true) getTCP(true)
reject(err) reject(err)
}); });

View File

@ -1,7 +1,7 @@
//考试回放开关 //考试回放开关
export const judgeConfig = { export const judgeConfig = {
// 外壳版本号 // 外壳版本号
version: "2025.05.17.01", version: "2025.05.19.01",
// 是否A1A3共用一车 // 是否A1A3共用一车
isUseSameCar: false, isUseSameCar: false,
//本地目录开关 //本地目录开关