fix: 暂存

This commit is contained in:
wangzhongjie 2025-03-05 11:02:23 +08:00
commit 32e66a83be

View File

@ -2,19 +2,18 @@ import socket from '@ohos.net.socket'
import util from '@ohos.util' import util from '@ohos.util'
import promptAction from '@ohos.promptAction' import promptAction from '@ohos.promptAction'
import TcpToByte from './utils/tcp2byte' import TcpToByte from './utils/tcp2byte'
import { bytesToDecimal } from './utils/tools' import {bytesToDecimal} from './utils/tools'
const TAG = '[TCP2BYTE]' const TAG = '[TCP2BYTE]'
interface RES { interface RES {
code: number | string, code: number|string,
message?: string message?: string
} }
const config = { const config = {
address: '172.37.55.191', address: '114.55.125.222',
port: 40000 port: 50189
} }
export default async function tcp2ByteRequest(data): Promise<RES> { export default async function tcp2ByteRequest(data): Promise<RES> {
@ -28,11 +27,7 @@ export default async function tcp2ByteRequest(data): Promise<RES> {
console.info(TAG, 'sendData=>' + JSON.stringify(sendData)) console.info(TAG, 'sendData=>' + JSON.stringify(sendData))
try { try {
await tcpClient.connect({ await tcpClient.connect({address: {address, port}})
address: {
address, port
}
})
//发送消息 //发送消息
handSendMessage(tcpClient, data.sjbs, sendData) handSendMessage(tcpClient, data.sjbs, sendData)
} catch (e) { } catch (e) {
@ -47,7 +42,7 @@ export default async function tcp2ByteRequest(data): Promise<RES> {
//收到消息 //收到消息
tcpClient.on('message', (data) => { tcpClient.on('message', (data) => {
const res = handReceiveMessage(tcpClient, sendData, data.message) const res = handReceiveMessage(tcpClient, sendData, data.message)
if (res) { if(res){
tcpClient.close() tcpClient.close()
resolve(res) resolve(res)
} }
@ -73,7 +68,7 @@ export default async function tcp2ByteRequest(data): Promise<RES> {
function handSendMessage(client: socket.TCPSocket, type, data) { function handSendMessage(client: socket.TCPSocket, type, data) {
switch (type) { switch (type) {
//开始考试 过程照片 考试结束需要分包 //开始考试 过程照片 考试结束需要分包
case '02-21-000009': case '02-21-000009':
case '02-21-000012': case '02-21-000012':
case '02-21-000014': case '02-21-000014':
@ -88,46 +83,46 @@ function handSendMessage(client: socket.TCPSocket, type, data) {
client.send({ data: new Uint8Array(data).buffer }) client.send({ data: new Uint8Array(data).buffer })
break; break;
default: default:break;
break;
} }
} }
//处理接收的数据 //处理接收的数据
function handReceiveMessage(client: socket.TCPSocket, sendData, receiveData: ArrayBuffer): RES { function handReceiveMessage(client: socket.TCPSocket, sendData, rData:ArrayBuffer):RES {
const receiveData = new Uint8Array(rData)
//返回的消息类型 //返回的消息类型
const messageType = receiveData[1]; const messageType = receiveData[1];
//流水号 //流水号
const lsh = bytesToDecimal([receiveData[2], receiveData[3]]); const lsh = bytesToDecimal([receiveData[2],receiveData[3]]);
//开始补包 //开始补包
if (messageType === 0xF0) { if(messageType === 0xF0){
//获取消息体长度 //获取消息体长度
const messageLength = receiveData[12] const messageLength = receiveData[12]
//分包总数 //分包总数
const packages = receiveData.slice(13, 13 + messageLength * 2); const packages = bytesToDecimal(receiveData.slice(13,13 + messageLength*2));
const forArr = new Array(packages).fill(1) const forArr = new Array(packages).fill(1)
forArr.forEach((item, index) => { forArr.forEach((item,index)=>{
const start = index * 2; const start = index * 2;
const end = start + 2; const end = start + 2;
const packageIndex = bytesToDecimal([start, end]); const packageIndex = bytesToDecimal([start,end]);
console.info(TAG, '补包内容' + JSON.stringify(new Uint8Array(sendData[packageIndex]))) console.info(TAG, '补包内容' + JSON.stringify(new Uint8Array(sendData[packageIndex])))
client.send({ data: new Uint8Array(sendData[packageIndex]).buffer }); client.send({data:new Uint8Array(sendData[packageIndex]).buffer});
}) })
} else { }else{
const decoder = util.TextDecoder.create('utf-8'); const decoder = util.TextDecoder.create('utf-8');
const messageLength = bytesToDecimal([receiveData[9], receiveData[10]]); const messageLength = bytesToDecimal([receiveData[9],receiveData[10]]);
const markLength = receiveData[11]; const markLength = receiveData[11];
const markContent = decoder.decodeWithStream(receiveData.slice(12, 12 + markLength)); const markContent = decoder.decodeWithStream(receiveData.slice(12, 12 + markLength ));
console.info(TAG, 'markContent=>' + markContent) console.info(TAG, 'markContent=>' + markContent)
const tipLength = receiveData[13].buffer; const tipLength = receiveData[13];
const messageContent = decoder.decodeWithStream(receiveData.slice(13 + markLength, 13 + markLength + tipLength)); const messageContent = decoder.decodeWithStream(receiveData.slice(13 + markLength, 13 + markLength + tipLength));
console.info(TAG, 'messageContent=>' + messageContent) console.info(TAG, 'messageContent=>' + messageContent)
return { return {
code: markContent, code:markContent,
message: messageContent message:messageContent
} }
} }
} }