微信小程序 聊天室簡單實現(xiàn)
更新時間:2017年04月19日 14:58:03 投稿:lqh
這篇文章主要介紹了微信小程序 聊天室簡單實現(xiàn)的相關資料,需要的朋友可以參考下
微信小程序 聊天室簡單實現(xiàn)
utils文件夾下websoctet.js文件
var url = 'ws://地址端口';
function connect(user, func) {
wx.connectSocket({
url: url,
header: {"content-type":'application/x-www-form-urlencoded'}
});
wx.onSocketOpen(function (res) {
send('{"type":"login","client_name":"'+user.nickName+'","room_id":"1"}')
});
//接受消息
wx.onSocketMessage(func);
}
//發(fā)送消息
function send(msg) {
wx.sendSocketMessage({ data: msg });
}
module.exports = {
connect: connect,
send: send
}
具體頁面.js文件內(nèi)容:
var websocket = require('../../utils/websocket.js');
//事件處理函數(shù)
add: function (e) {
websocket.send('{"type":"say","from_client_id":"'+user.nickName+'","to_client_id":"all","content":"'+this.data.message+'"}')
},
onLoad: function () {
var that = this
//調(diào)用應用實例的方法獲取全局數(shù)據(jù)
app.getUserInfo(function (userInfo) {
user = userInfo;
websocket.connect(user, function (res) {
text = that.encodeStr(res.data) + "\n";
console.log(res)
that.setData({
text: text
});
// websocket.send('{"type":"pong"}');
})
})
},
下面方法很好玩,因為使用的服務器 是開源的PHP服務器,所以微信小程序接收到的聊天室中文內(nèi)容是ASCII編碼,所以經(jīng)過此方法可以轉(zhuǎn)換。
encodeStr: function (str) {
var character = str.split("\\u");
var native1 = character[0];
for (var i = 1; i < character.length; i++) {
var code = character[i];
native1 += String.fromCharCode(parseInt("0x" + code.substring(0, 4)));
if (code.length > 4) {
native1 += code.substring(4, code.length);
}
}
return native1
},
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
umi插件開發(fā)仿dumi項目實現(xiàn)頁面布局詳解
這篇文章主要為大家介紹了umi插件開發(fā)仿dumi項目實現(xiàn)頁面布局詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
微信小程序?qū)崿F(xiàn)給循環(huán)列表添加點擊樣式實例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)給循環(huán)列表添加點擊樣式實例的相關資料,需要的朋友可以參考下2017-04-04
深入講解JavaScript之繼承的多種方式和優(yōu)缺點
本文講主要解JavaScript各種繼承方式和優(yōu)缺點,文章將六種繼承方式說明,分別有原型鏈繼承、借用構(gòu)造函數(shù)(經(jīng)典繼承)、組合繼承、原型式繼承、寄生式繼承、 寄生組合式繼承,這六種方式,需要的朋友可以參考一下2021-10-10
微信小程序promsie.all和promise順序執(zhí)行
這篇文章主要介紹了微信小程序promsie.all和promise順序執(zhí)行的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-10-10

