微信小程序socket长链接实现
实现微信小程序进行websocket实时双向通信
在项目中引入weapp.socket.io.js文件

在 utils 文件中建立 socket.js 文件
socket.js
const io = require("./weapp.socket.io.js"); // 引入 socket.io
const urlConfig = require('./urlConfig.js');
let wsStatus = false;
let onSocket = null;
//urlConfig.socketServer -- ws://192.168.41.189:3000
onSocket = io(urlConfig.socketServer, {
transports: ['websocket']
}) // 连接 socket
export const connect = function (cb) {
if (!onSocket) {
onSocket.on('connect', function (res) { // 监听socket 是否连接成功
cb(true, onSocket)
wsStatus = true;
})
// onSocket.on('login', function (res) {
// console.log(res)
// })
setTimeout(function () { // 超时10秒,返回false
if (!wsStatus) {
cb(false, onSocket)
}
}, 10000)
} else {
cb(true, onSocket)
}
}
在页面js中使用
const app = getApp(); const socket = require("../../utils/socket.js"); Page({ onLoad: function (options) { this.getWxSocket(); }, getWxSocket() { // 监听socket 是否连接成功 socket.connect((status, ws) => { // 连接成功 console.log(status, ws) if (status) { // 向服务端发送消息 ws.emit('login', { userId: 'Hello World' }); // 参数一:发送消息的socket名,参数二: 发送的数据 // 接受服务端传来的消息 ws.on('login_ack', (res) => { // 参数一:接收消息的socket名,参数二:返回的信息 function console.log(res) }); } else { // ...连接超时 } }) }, })
效果:


浙公网安备 33010602011771号