在這里做了重連判斷,重連后感覺(jué)之前client_id還依然有效,同一個(gè)客戶端會(huì)受到服務(wù)端重復(fù)推送來(lái)的消息
websocketonerror() {
this.initWebSocket();
}
websocketclose(e){
this.initWebSocket();
}
initWebSocket() {
const wsuri = "ws://XX.XX.XX.XX";
this.websock = new WebSocket(wsuri);
this.websock.onopen = this.websocketonopen;
this.websock.onerror = this.websocketonerror;
this.websock.onmessage = this.websocketonmessage;
this.websock.onclose = this.websocketclose;
}
前端js業(yè)務(wù)邏輯有問(wèn)題。
連接斷開時(shí)websocketonerror 和 websocketclose 可能都會(huì)觸發(fā),然后你這2個(gè)事件都執(zhí)行了建立新的連接,原本想建立1個(gè)連接,實(shí)際上建立了2個(gè)。然后不斷的裂變1變2,2變4,4變8,建立了N多個(gè)連接,收到重復(fù)的信息。
我覺(jué)得只在websocketclose里建立新連接就夠了。