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

小云云
Libérer: 2018-05-29 10:45:40
original
6067 Les gens l'ont consulté

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)
  }
}
Copier après la connexion

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));
    }
  }
}
});
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!