MCPcopy Create free account
hub / github.com/ShouChenICU/FastSend / onData

Method onData

app/utils/PeerDataChannel.ts:93–118  ·  view source on GitHub ↗
(data: ArrayBuffer | string)

Source from the content-addressed store, hash-verified

91 }
92
93 private async onData(data: ArrayBuffer | string): Promise<void> {
94 const receiveData = this.receiveData
95 if (receiveData.offset === receiveData.count) {
96 const dat = JSON.parse(data as string)
97 this.receiveData = {
98 startTime: Date.now(),
99 offset: 0,
100 count: dat.count,
101 type: dat.type,
102 chunks: []
103 }
104 } else {
105 receiveData.chunks.push(data)
106 receiveData.offset++
107 if (receiveData.offset === receiveData.count) {
108 const endTime = Date.now()
109 const b = new Blob(receiveData.chunks)
110 const result = receiveData.type === 'string' ? await b.text() : await b.arrayBuffer()
111 await this.onReceive(result, {
112 size: b.size,
113 duration: endTime - receiveData.startTime
114 })
115 receiveData.chunks = []
116 }
117 }
118 }
119
120 /**
121 * 发送数据,注意只能串行调用

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected