fix: #148 message truncated

This commit is contained in:
kense 2023-05-23 21:27:03 +08:00
parent 4350bb9a00
commit 93c3b6963a
1 changed files with 12 additions and 1 deletions

View File

@ -66,6 +66,7 @@ const handleStream = (response: any, onData: IOnData, onCompleted?: IOnCompleted
let isFirstMessage = true
function read() {
let hasError = false
let firstHalfMessage: string
reader.read().then((result: any) => {
if (result.done) {
onCompleted && onCompleted()
@ -75,9 +76,19 @@ const handleStream = (response: any, onData: IOnData, onCompleted?: IOnCompleted
const lines = buffer.split('\n')
try {
lines.forEach((message) => {
if (firstHalfMessage) {
message += firstHalfMessage
firstHalfMessage = ''
}
if (message.startsWith('data: ')) { // check if it starts with data:
// console.log(message);
bufferObj = JSON.parse(message.substring(6)) // remove data: and parse as json
try {
bufferObj = JSON.parse(message.substring(6)) // remove data: and parse as json
} catch (e) {
// JSON has been truncated
firstHalfMessage = message
return
}
if (bufferObj.status === 400 || !bufferObj.event) {
onData('', false, {
conversationId: undefined,