實(shí)例詳解微信小程序如何使用Socket

    本文主要和大家介紹微信小程序使用Socket的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下,希望能幫助到大家。愛掏網(wǎng) - it200.com

    微信小程序使用Socket的實(shí)例

    首先,一個(gè)小程序同時(shí)只能有一個(gè)WebSocket連接,如果當(dāng)前已經(jīng)存在一個(gè)WebSocket連接,會(huì)關(guān)閉當(dāng)前連接,并重新建立一個(gè)連接。愛掏網(wǎng) - it200.com

    其次,如果使用了appID,協(xié)議必須是 wss://...

    最近團(tuán)隊(duì)用小程序做行情,在連接socket的時(shí)候,發(fā)現(xiàn)在還沒有進(jìn)行subscribe的情況下,就直接進(jìn)行了廣播,并且自動(dòng)關(guān)閉了socket連接,

    時(shí)間緊迫,抓耳撓腮,遂引用了socket-io(基于小程序的websocket仿寫的socket-io,并非官方的socket-io,傳送門),使用方法:

    1、先在utils文件夾粘貼一個(gè)io的js

    2、然后 npm install wxapp-socket-io

    3、config文件夾下新建一個(gè)socket.js,對socket連接進(jìn)行封裝,如下:

    const io = require('../utils/io.js')
    let url = 'wss://......'
    let wsStatus = false
    let onSocket = null
    export const connect = function(cb){
      if(!onSocket){
        onSocket = io(url)
        onSocket.on('connect', function (res) {
          cb(true,onSocket)
          wsStatus = true
        })
        setTimeout(function(){
          if(!wsStatus){
            cb(false,onSocket)
          }
        },10000)
      }else{
        cb(true,onSocket)
      }
    }
    登錄后復(fù)制

    4、在要引用的頁面調(diào)用,全局封裝訂閱方法

    let openSocket = require('../../config/socket')
    let app = getApp()
    let socket = null
    Page({
    data: {
      zl: [[422, 400, 468, 834, 785, 446, 845, 517, 630, 797, 890, 529, 553, 425, 469, 470, 837, 841, 521, 525], [422, 400, 468, 834, 785, 446, 845, 517, 630, 797, 890, 529, 553, 425, 469, 470, 837, 841, 521, 525]]
    },
    onLoad: function () {
      let that = this;
      //socket調(diào)用
      openSocket.connect(function (status, ws) {
        if (status) {
          socket = ws
          this.subscribe('zl')//對封裝好對訂閱方法進(jìn)行調(diào)用
          socket.on('broadcast', function (msg) {//廣播
            console.log("broadcast");
            console.log(msg);
          })
        } else {
          alert("socket 連接失敗")
        }
      });
    },
    subscribe: function (type) {
      if (socket) {
        let eis = this.data[type]
        if (eis && eis.length > 0) {
          let param = {//僅供參考,根據(jù)接口自行更改
            eis: eis.join(',')
          }
          socket.emit('subscribe', JSON.stringify(param));
        }
      }
    }
    });
    登錄后復(fù)制

    相關(guān)推薦:

    HTML5 WebSocket點(diǎn)對點(diǎn)聊天實(shí)現(xiàn)方法

    node.js 用socket實(shí)現(xiàn)聊天實(shí)例分享

    詳解php實(shí)現(xiàn)socket推送技術(shù)

    以上就是實(shí)例詳解微信小程序如何使用Socket的詳細(xì)內(nèi)容,更多請關(guān)注愛掏網(wǎng) - it200.com其它相關(guān)文章!

    聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評論
    更多 網(wǎng)友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 亚洲一区中文字幕在线电影网| 波多野结衣一区在线| 蜜桃视频一区二区三区| 久久久精品人妻一区二区三区蜜桃 | 波多野结衣中文字幕一区二区三区| 三上悠亚日韩精品一区在线| 日本一道一区二区免费看| 中字幕一区二区三区乱码| 亚欧免费视频一区二区三区| 久久精品岛国av一区二区无码| 久久精品一区二区影院| 国产精品第一区第27页| 波多野结衣精品一区二区三区| 加勒比无码一区二区三区| 国产香蕉一区二区精品视频 | 99无码人妻一区二区三区免费| 中文字幕在线观看一区二区 | 国产精品无码AV一区二区三区| 爆乳熟妇一区二区三区| 亚洲av成人一区二区三区在线观看| 日本一区二区三区免费高清在线| 国产AV一区二区精品凹凸| 精品一区二区三区电影| 痴汉中文字幕视频一区| 国产精品一区三区| 丝袜人妻一区二区三区| 国产精品视频一区二区噜噜| 一区二区三区福利视频免费观看| 亚洲AV无一区二区三区久久| 精品人妻中文av一区二区三区 | 亚洲免费视频一区二区三区| 亚洲国产av一区二区三区| 精品一区二区三区色花堂| 国产剧情国产精品一区| 色狠狠AV一区二区三区| 亚洲欧美一区二区三区日产| 色屁屁一区二区三区视频国产 | 韩国福利影视一区二区三区| 亚洲AV香蕉一区区二区三区| 日本免费一区二区三区最新| 岛国无码av不卡一区二区|