第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有大佬遇到過這個問題嗎:自定義對象上拷貝原生WebSocket對象的方法和事件跪求!

有大佬遇到過這個問題嗎:自定義對象上拷貝原生WebSocket對象的方法和事件跪求!

慕斯王 2019-06-09 11:50:19
一個閉包,封裝一些方法;(function(window){varinitObj=null;varajaxSuccessResult='';vartimer=null;/***判斷是否支持websocket*@param*@returns{boolean}*/functionisSupported(){if(window.WebSocket&&(typeofWebSocket!='undefined')){returntrue;}returnfalse;}...太長,省略functionMSocket(options){if(!isSupported()){//polling獲取數(shù)據(jù)timer=setInterval(function(){ajax({url:options.http,data:options.ajaxData,type:options.type,})},3000);}else{returnnewWebSocket(options.http);}}//MSocket.prototype.onmessage=function(callback){////傳遞數(shù)據(jù),外面接收//callback(ajaxSuccessResult);//}//此處用websocket原生方法賦值給MSocket對象上;但是無效.MSocket.prototype.close=function(){returnWebSocket.close();};console.log(MSocket.prototype,'MSocket');if(typeofmodule!='undefined'&&module.exports){module.exports=MSocket;}elseif(typeofdefine=='function'&&define.amd){define(function(){returnMSocket;});}else{window.MSocket=MSocket;}}(window));vue中外部調(diào)用methods:{sendMessage(){this.socketCase.send(this.inputData);this.inputData='';},closeMessage(){//提示Cannotreadproperty'close'ofnull"this.socketCase.close();this.$toast('已關(guān)閉連接');},},mounted(){//實(shí)例化一個MSocket對象,傳入一些參數(shù)this.socketCase=newMSocket({ws:this.url,http:this.httpurl,ajaxData:{},type:'POST',...});//原生事件this.socketCase.onmessage=function(event){console.log(event,'onmessage');};//獲取到的window.WebSocket如下,所有的方法都掛在原型中。?WebSocket(){[nativecode]}我的疑問:即:如何在一個自定義對象上賦值原生WebSocket對象事件。比如實(shí)現(xiàn)監(jiān)聽onmessage事件
查看完整描述

2 回答

?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個贊

你返回的webscoket實(shí)例對象已經(jīng)包含了close方法了,沒必要對MSocket對象擴(kuò)展close方法,剛剛查了MDN確認(rèn)了。
在你調(diào)用MSocket的時候,直接ws=MSocket()即可,
個人觀點(diǎn),歡迎繼續(xù)討論
                            
查看完整回答
反對 回復(fù) 2019-06-09
?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個贊

close方法實(shí)在構(gòu)造函數(shù)的原型上,調(diào)用應(yīng)該在原型上調(diào)用或者實(shí)例化后直接調(diào)用
WebSocket.prototype.close
或者
letws=newWebSocket();
ws.close
                            
查看完整回答
反對 回復(fù) 2019-06-09
  • 2 回答
  • 0 關(guān)注
  • 297 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號