cnpm install event-source-polyfill --save
import { EventSourcePolyfill } from "event-source-polyfill";
export default{
data(){
sse:"",
},
methods:{
chatqaAdd() {
var text = "";
var url="/createSse";
const eventSource = new EventSourcePolyfill(url, {
headers: {
'Authorization': "token,根据需要传"
}
});
eventSource.onopen = (event) => {
console.log("开始输出后端返回值");
this.sse = event.target;
};
eventSource.onmessage = (event) => {
if (event.lastEventId == "[TOKENS]") {
text = text+event.data
return;
}
if (event.data == "[DONE]") {
return;
}
let json_data = JSON.parse(event.data);
if (json_data.content == null || json_data.content == "null") {
return;
}
text = text + json_data.content;
};
eventSource.onerror = (event) => {
console.log("服务连接异常请重试!");
if (event.readyState === EventSource.CLOSED) {
console.log("connection is closed");
} else {
console.log("Error occured11111", event);
}
event.target.close();
};
eventSource.addEventListener("message", (event) => {
console.log("Message id is " + event.lastEventId);
});
this.questionPost();
},
questionPost() {
app.ajax.post(
"chatgpt/chat?userId=1",
{
msg: "问题",
sessionId: 1,
},
(data, rspMsg) => {
var questionTokens = data.question_tokens;
},
(rspMsg, data) => {
this.$message.error("请求失败,请重试");
},
{}
);
},
stopRequest(){
if (this.sse) {
this.sse._close();
}
}
}
}