¿Cómo configurar el nombre de dominio del socket del mini programa?
En cuanto a la elección del nombre de dominio y el servidor, depende de si el productor del subprograma WeChat necesita estrictamente llevar a cabo un desarrollo vinculante. Si no existe ninguna disposición para el desarrollo vinculante, puede elegir el nombre de dominio y el servidor. De forma independiente, como este en Alibaba Cloud o iisp tiene servicios relacionados.
Método específico:
Primero pegue un io js en la carpeta utils
Luego npm install wxapp-socket-io
config Crear un nuevo socket.js en la carpeta para encapsular la conexión del socket, de la siguiente manera:
const io = require('../utils/io.js')
let url = 'wss://...'
let wsStatus = false
let onSocket = null
exportar const connect = function(cb){
if(!onSocket){
onSocket = io(url)
onSocket.on('conectar', función (res) {
cb(true, onSocket)
wsStatus = true
})
setTimeout(function(){
if(!wsStatus) {
cb(false, onSocket)
}
}, 10000)
}else{
cb(true, onSocket)
}
}
Llame a la página a la que se hará referencia y encapsule el método de suscripción globalmente
let openSocket = require('../../config/socket')
let app = getApp()
let socket = null
Page( {
datos: {
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: función () {
let that = this;
//llamada de socket
openSocket .connect(function (status, ws) {
if (status) {
socket = ws this.subscribe('zl')// Encapsula la llamada al método de suscripción
socket.on('broadcast', function (msg) {//Broadcast
console.log("broadcast");
console.log (msg);
})
} else {
alert("falló la conexión del socket")
}
} );
}, suscríbete: función (tipo) {
if (socket) {
>let eis = this.data[type]
if (eis amp; amp; eis.length gt; 0) {
let param = {//Solo como referencia, según a La interfaz cambia sola
eis: eis.join(',')
}
socket.emit('subscribe', JSON.stringify(param )) ;
}
}
}});
Nota: Crear una conexión WebSocket solo puede tener un subprograma WeChat; Una conexión WebSocket Si actualmente existe una conexión WebSocket, la conexión se cerrará automáticamente y se creará una nueva conexión WebSocket.