移植Parse-SDK-JS到微信小程序之旅:websocket

這部分比之前的requestlocalStorage還要難點,不過還是順利移植過來了英融。

因為微信小程序的websocket只允許一條連接,所以復雜情況下還沒進行測試,尚未發(fā)現(xiàn)有什么bug忌傻。

腳本定位

文件:/src/LiveQueryClient.js
函數(shù):_getWebSocketImplementation
代碼:

    if (process.env.PARSE_BUILD === 'node') {
      return require('ws');
    } else if (process.env.PARSE_BUILD === 'browser') {
      return typeof WebSocket === 'function' || typeof WebSocket === 'object' ? WebSocket : null;
    } else if (process.env.PARSE_BUILD === 'react-native') {
      return WebSocket;
    }

原理分析

可以看到,在不同的執(zhí)行環(huán)境下搞监,返回不同的WebSocket對象水孩,但這些都不是微信小程序支持的。
所以我們需要重寫一個簡單的WebSocket對象

編寫代碼


class WxSocket {
  constructor (url) {
    wx.connectSocket({
      url
    });

    wx.onSocketOpen((ret) => {
      this.onopen && this.onopen(ret);
    });

    wx.onSocketError(err => {
      this.onerror && this.onerror(err);
    });

    wx.onSocketMessage(msg => {
      this.onmessage && this.onmessage(msg);
    });

    wx.onSocketClose(() => {
      this.onclose && this.onclose();
    })
  }

  send (data) {
    wx.sendSocketMessage({
      data
    })
  }

  close () {
    wx.closeSocket();
  }

  onopen () {}
  onerror (error) {}
  onclose () {}
  onmessage (event) {}
}

然后在上邊的_getWebSocketImplementation函數(shù)琐驴,直接返回WxSocket對象即可俘种。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绝淡,隨后出現(xiàn)的幾起案子宙刘,更是在濱河造成了極大的恐慌,老刑警劉巖牢酵,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悬包,死亡現(xiàn)場離奇詭異,居然都是意外死亡馍乙,警方通過查閱死者的電腦和手機布近,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丝格,“玉大人撑瞧,你說我怎么就攤上這事√罚” “怎么了季蚂?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長琅束。 經(jīng)常有香客問我扭屁,道長,這世上最難降的妖魔是什么涩禀? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任料滥,我火速辦了婚禮,結果婚禮上艾船,老公的妹妹穿的比我還像新娘葵腹。我一直安慰自己高每,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布践宴。 她就那樣靜靜地躺著鲸匿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阻肩。 梳的紋絲不亂的頭發(fā)上带欢,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音烤惊,去河邊找鬼乔煞。 笑死,一個胖子當著我的面吹牛柒室,可吹牛的內(nèi)容都是我干的渡贾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼雄右,長吁一口氣:“原來是場噩夢啊……” “哼空骚!你這毒婦竟也來了?” 一聲冷哼從身側響起不脯,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤府怯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后防楷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡则涯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年复局,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粟判。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡亿昏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出档礁,到底是詐尸還是另有隱情角钩,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布呻澜,位于F島的核電站递礼,受9級特大地震影響,放射性物質發(fā)生泄漏羹幸。R本人自食惡果不足惜脊髓,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栅受。 院中可真熱鬧将硝,春花似錦恭朗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至律罢,卻和暖如春膀值,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背弟翘。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工虫腋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稀余。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓悦冀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親睛琳。 傳聞我的和親對象是個殘疾皇子盒蟆,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)师骗,斷路器历等,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx?那么一定聽過它的“同行”Apache吧辟癌!Ngi...
    JokerW閱讀 32,679評論 24 1,002
  • 前端開發(fā)面試知識點大綱: HTML&CSS: 對Web標準的理解寒屯、瀏覽器內(nèi)核差異、兼容性黍少、hack寡夹、CSS基本功:...
    秀才JaneBook閱讀 2,366評論 0 25
  • 好種子開花 一早紅燕姐給我打電話來接我一起去上課,額滴神啊厂置,幸福從天降 到了課堂菩掏,帶的披肩薄了點,隔壁的姐姐就把她...
    西紅柿的小姑娘閱讀 264評論 0 2
  • 《金文誠〈孟子〉學習筆記306瞧栗,8-13,離婁章句下13》 【孟子曰:"養(yǎng)生者不足以當大事醉顽,惟送死可以當大事沼溜。"】...
    金吾生閱讀 398評論 0 0