fix: 暂存
This commit is contained in:
		
						commit
						32e66a83be
					
				| @ -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 | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user