這篇文章主要介紹了微信小程序 SocketIO 的相關(guān)資料,這里給大家提供了一個簡單實例,需要的朋友可以參考下
微信小程序 ScoketIO 簡單實例:
現(xiàn)在好的人在搞微信小程序,ScoketIO 是微信的網(wǎng)絡(luò)通信,它的重要性不言而喻,這里給大家講講如何使用以及注意事項!
微信小程序 的SocketIO 實現(xiàn),基于CFETram 的實現(xiàn)基礎(chǔ)上完善
const emitter = require('./emitter.js'); /** socket.io 協(xié)議常量 */ var packets = { open: 0 // non-ws , close: 1 // non-ws , ping: 2 , pong: 3 , message: 4 , upgrade: 5 , noop: 6 }; var events = { CONNECT: 0, DISCONNECT: 1, EVENT: 2, ACK: 3, ERROR: 4, BINARY_EVENT: 5, BINARY_ACK: 6 }; const PING_CHECK_INTERVAL = 2000; class WxSocketIO { connect(url) { return new Promise((resolve, reject) => { wx.onSocketOpen((response) => { this.isConnected = true; //this.ping(); resolve(response); }); wx.onSocketError(error => { if (this.isConnected) { this.fire('error', error); } else { reject(error); } }); wx.onSocketMessage(message => this._handleMessage(message)); wx.onSocketClose(result => { if (this.isConnected) { this.fire('error', new Error("The websocket was closed by server")); } else { this.fire('close'); } this.isConnected = false; this.destory(); }); wx.connectSocket({ url: `${url}/?EIO=3&transport=websocket` }); }); } ping() { setTimeout(() => { if (!this.isConnected) return; wx.sendSocketMessage({ data: [packets.ping, 'probe'].join('') }); }, PING_CHECK_INTERVAL); } close() { return new Promise((resolve, reject) => { if (this.isConnected) { this.isConnected = false; wx.onSocketClose(resolve); wx.closeSocket(); } else { reject(new Error('socket is not connected')); } }); } emit(type, ...params) { const data = [type, ...params]; wx.sendSocketMessage({ data: [packets.message, events.EVENT, JSON.stringify(data)].join("") }); } destory() { this.removeAllListeners(); } _handleMessage({ data }) { const [match, packet, event, content] = /^(\d)(\d?)(.*)$/.exec(data); if (+event === events.EVENT) { switch (+packet) { case packets.message: let pack; try { pack = JSON.parse(content); } catch (error) { console.error('解析 ws 數(shù)據(jù)包失敗:') console.error(error); } const [type, ...params] = pack; this.fire(type, ...params); break; } } else if (+packet == packets.pong) { this.ping(); } } }; emitter.setup(WxSocketIO.prototype); module.exports = WxSocketIO;
DEMO
項目附了一個微信小程序的DEMO 項目演示了接入 Scoket.IO 官方的演示聊天室,以便方便測試,關(guān)于詳細(xì)用法還請參考官方文檔。
How to use
const opts = {} const socket = this.globalData.socket = new WxSocketIO() socket.connect('ws://chat.socket.io', opts) .then(_ => { console.info('App::WxSocketIO::onOpen') console.info('App:onShow:', that.globalData) }) .catch(err => { console.error('App::WxSocketIO::onError', err) }) 其中socket.connect(ws_url, opts)中,opts目前可選值是path,用來指定使用socket.io時默認(rèn)的path,比如設(shè)置opts為下列值: { query: 'fanweixiao', with: 'mia&una', }
以上是解析微信小程序SocketIO實例的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

閑魚官方微信小程序悄然上線,在小程序中可以發(fā)布閑置與買家/賣家私信交流、查看個人資料及訂單、搜索物品等,有用好奇閑魚微信小程序叫什么,現(xiàn)在快來看一下。閑魚微信小程序叫什么答案:閑魚,閑置交易二手買賣估價回收。1、在小程序中可以發(fā)布閑置、與買家/賣家私信交流、查看個人資料及訂單、搜索指定物品等功能;2、在小程序的頁面中有首頁、附近、發(fā)閑置、消息、我的5項功能;3、想要使用的話必要要開通微信支付才可以購買;

實現(xiàn)微信小程序中的圖片濾鏡效果隨著社交媒體應(yīng)用的流行,人們越來越喜歡在照片中應(yīng)用濾鏡效果,以增強照片的藝術(shù)效果和吸引力。在微信小程序中也可以實現(xiàn)圖片濾鏡效果,為用戶提供更多有趣和創(chuàng)造性的照片編輯功能。本文將介紹如何在微信小程序中實現(xiàn)圖片濾鏡效果,并提供具體的代碼示例。首先,我們需要在微信小程序中使用canvas組件來加載和編輯圖片。canvas組件可以在頁面

實現(xiàn)微信小程序中的下拉菜單效果,需要具體代碼示例隨著移動互聯(lián)網(wǎng)的普及,微信小程序成為了互聯(lián)網(wǎng)開發(fā)的重要一環(huán),越來越多的人開始關(guān)注和使用微信小程序。微信小程序的開發(fā)相比傳統(tǒng)的APP開發(fā)更加簡便快捷,但也需要掌握一定的開發(fā)技巧。在微信小程序的開發(fā)中,下拉菜單是一個常見的UI組件,實現(xiàn)了更好的用戶操作體驗。本文將詳細(xì)介紹如何在微信小程序中實現(xiàn)下拉菜單效果,并提供具

閑魚官方微信小程序已經(jīng)悄然上線,它為用戶提供了一個便捷的平臺,讓你可以輕松地發(fā)布和交易閑置物品。在小程序中,你可以與買家或賣家進(jìn)行私信交流,查看個人資料和訂單,以及搜索你想要的物品。那么閑魚在微信小程序中究竟叫什么呢,這篇教程攻略將為您詳細(xì)介紹,想要了解的用戶們快來跟著本文繼續(xù)閱讀吧!閑魚微信小程序叫什么答案:閑魚,閑置交易二手買賣估價回收。1、在小程序中可以發(fā)布閑置、與買家/賣家私信交流、查看個人資料及訂單、搜索指定物品等功能;2、在小程序的頁面中有首頁、附近、發(fā)閑置、消息、我的5項功能;3、

微信小程序?qū)崿F(xiàn)圖片上傳功能隨著移動互聯(lián)網(wǎng)的發(fā)展,微信小程序已經(jīng)成為了人們生活中不可或缺的一部分。微信小程序不僅提供了豐富的應(yīng)用場景,還支持開發(fā)者自定義功能,其中包括圖片上傳功能。本文將介紹如何在微信小程序中實現(xiàn)圖片上傳功能,并提供具體的代碼示例。一、前期準(zhǔn)備工作在開始編寫代碼之前,我們需要先下載并安裝微信開發(fā)者工具,并注冊成為微信開發(fā)者。同時,還需要了解微信

實現(xiàn)微信小程序中的圖片旋轉(zhuǎn)效果,需要具體代碼示例微信小程序是一種輕量級的應(yīng)用程序,為用戶提供了豐富的功能和良好的用戶體驗。在小程序中,開發(fā)者可以利用各種組件和API來實現(xiàn)各種效果。其中,圖片旋轉(zhuǎn)效果是一種常見的動畫效果,可以為小程序增添趣味性和視覺效果。在微信小程序中實現(xiàn)圖片旋轉(zhuǎn)效果,需要使用小程序提供的動畫API。下面是一個具體的代碼示例,展示了如何在小程

使用微信小程序?qū)崿F(xiàn)輪播圖切換效果微信小程序是一種輕量級的應(yīng)用程序,具有簡單、高效的開發(fā)和使用特點。在微信小程序中,實現(xiàn)輪播圖切換效果是常見的需求。本文將介紹如何使用微信小程序?qū)崿F(xiàn)輪播圖切換效果,并給出具體的代碼示例。首先,在微信小程序的頁面文件中,添加一個輪播圖組件。例如,可以使用<swiper>標(biāo)簽來實現(xiàn)輪播圖的切換效果。在該組件中,可以通過b

實現(xiàn)微信小程序中的滑動刪除功能,需要具體代碼示例隨著微信小程序的流行,開發(fā)者們在開發(fā)過程中經(jīng)常會遇到一些常見功能的實現(xiàn)問題。其中,滑動刪除功能是一個常見、常用的功能需求。本文將為大家詳細(xì)介紹如何在微信小程序中實現(xiàn)滑動刪除功能,并給出具體的代碼示例。一、需求分析在微信小程序中,滑動刪除功能的實現(xiàn)涉及到以下要點:列表展示:要顯示可滑動刪除的列表,每個列表項需要包
