效果:

代码:
import { Toast } from "mint-ui";
export default {
data(){
return{
websocket: null,
keyWord:'',
searchKey:'search_qa'
}
},
mounted(){
this.initWebSocket()
},
methods:{
initWebSocket() {
if ("WebSocket" in window) {
this.websocket = null;
this.websocket = new WebSocket(
"wss://" +
location.hostname +
"/xxxx/api/ws/csAsk?token=" +
sessionStorage.getItem("token") +
"&channel=2" +
"&corpid=" +
sessionStorage.getItem("orgId") +
"&no=" +
sessionStorage.getItem("openId")
);
this.websocket.onerror = this.setErrorMessage;
this.websocket.onopen = this.setOnopenMessage;
this.websocket.onmessage = this.setOnmessageMessage;
this.websocket.onclose = this.setOncloseMessage;
} else {
this.$toast("当前浏览器不支持websocket");
}
},
setErrorMessage() {
alert('连接出错');
},
setOnopenMessage() {
alert('连接成功')
},
setOnmessageMessage(event) {
alert('接收消息的回调')
let chatObj = JSON.parse(event.data);
console.log('chatObj',chatObj);
},
setOncloseMessage() {
alert('连接关闭')
},
onSend() {
if(!this.keyWord){
Toast("请输入文字");
return
}
let params = {
query: this.keyWord,
searchKey: this.searchKey
};
this.websocket.send(JSON.stringify(params));
},
},
activated() {
if (!this.websocket) {
this.initWebSocket();
}
},
deactivated() {
this.websocket = null;
if(this.websocket){
this.websocket.close();
}
}
}