Maison >Applet WeChat >Développement de mini-programmes >Exemple détaillé d'utilisation de Socket dans l'applet WeChat

Exemple détaillé d'utilisation de Socket dans l'applet WeChat

小云云
小云云original
2018-05-29 10:45:406118parcourir

Cet article vous présente principalement des informations pertinentes sur les exemples d'utilisation de Socket dans l'applet WeChat. J'espère que cet article pourra vous aider. Les amis dans le besoin pourront s'y référer.

Exemple de mini programme WeChat utilisant Socket

Tout d'abord, un mini programme ne peut avoir qu'une seule connexion WebSocket à la fois s'il y en a déjà. une connexion WebSocket, il fermera la connexion actuelle et rétablira une connexion.

Deuxièmement, si appID est utilisé, le protocole doit être wss://...

Récemment, l'équipe a utilisé un petit programme pour faire des cotations de marché lors de la connexion au socket. a été constaté qu'aucun abonnement n'avait été effectué. Dans ces circonstances, la diffusion a été effectuée directement et la connexion socket a été automatiquement fermée

Le temps était compté et je me grattais la tête, j'ai donc cité socket-io (. une imitation websocket basée sur un petit programme, socket-io, qui n'est pas un socket officiel) -io, portail), méthode d'utilisation :

1. Collez d'abord un io js dans le dossier utils

2. Ensuite, npm install wxapp-socket-io

3. Créez un nouveau socket.js sous le dossier de configuration et encapsulez la connexion socket, comme suit :

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)
  }
}

4. Appelez la méthode d'abonnement à l'encapsulation globale sur la page à référencer

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调用
  openSocket.connect(function (status, ws) {
    if (status) {
      socket = ws
      this.subscribe('zl')//对封装好对订阅方法进行调用
      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 = {//仅供参考,根据接口自行更改
        eis: eis.join(',')
      }
      socket.emit('subscribe', JSON.stringify(param));
    }
  }
}
});

Recommandations associées :

Méthode d'implémentation de chat point à point HTML5 WebSocket

node.js utilise socket pour implémenter le partage d'instances de chat

Explication détaillée de la technologie socket push en PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn