微信小程序?qū)崟r(shí)聊天WebSocket
更新時(shí)間:2018年07月05日 16:34:01 作者:a_靖
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崟r(shí)聊天WebSocket的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了微信小程序?qū)崟r(shí)聊天WebSocket的具體代碼,供大家參考,具體內(nèi)容如下
1.所有監(jiān)聽事件先在onload監(jiān)聽。
// pages/index/to_news/to_news.js
var app = getApp();
var socketOpen = false;
var SocketTask = false;
var url = 'ws://192.168.0.120:7011';
Page({
data: {
inputValue: '',
returnValue: '',
},
onLoad: function (options) {
},
onReady: function () {
// 創(chuàng)建Socket
SocketTask = wx.connectSocket({
url: url,
data: 'data',
header: {
'content-type': 'application/json'
},
method: 'post',
success: function (res) {
console.log('WebSocket連接創(chuàng)建', res)
},
fail: function (err) {
wx.showToast({
title: '網(wǎng)絡(luò)異常!',
})
console.log(err)
},
})
if (SocketTask) {
SocketTask.onOpen(res => {
console.log('監(jiān)聽 WebSocket 連接打開事件。', res)
})
SocketTask.onClose(onClose => {
console.log('監(jiān)聽 WebSocket 連接關(guān)閉事件。', onClose)
})
SocketTask.onError(onError => {
console.log('監(jiān)聽 WebSocket 錯(cuò)誤。錯(cuò)誤信息', onError)
})
SocketTask.onMessage(onMessage => {
console.log('監(jiān)聽WebSocket接受到服務(wù)器的消息事件。服務(wù)器返回的消息', onMessage)
})
}
},
// 提交文字
submitTo: function (e) {
let that = this;
that.data.allContentList.push({that.data.inputValue });
that.setData({
allContentList: that.data.allContentList
})
var data = {
text: that.data.inputValue
}
if (socketOpen) {
// 如果打開了socket就發(fā)送數(shù)據(jù)給服務(wù)器
sendSocketMessage(data)
}
},
bindKeyInput: function (e) {
this.setData({
inputValue: e.detail.value
})
},
onHide: function () {
SocketTask.close(function (close) {
console.log('關(guān)閉 WebSocket 連接。', close)
})
},
})
//通過 WebSocket 連接發(fā)送數(shù)據(jù),需要先 wx.connectSocket,并在 wx.onSocketOpen 回調(diào)之后才能發(fā)送。
function sendSocketMessage(data) {
console.log('通過 WebSocket 連接發(fā)送數(shù)據(jù)')
if (socketOpen) {
SocketTask.send({data: JSON.stringify(data)
}, function (res) {
console.log('已發(fā)送', res)
})
} else {
socketMsgQueue.push(msg)
}
}
html
<input type="text" bindinput="bindKeyInput" value='{{inputValue}}' placeholder="" />
<button bindtap="submitTo" class='user_input_text'>發(fā)送</button>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何解決Webview和H5緩存問題確保每次加載最新版本的資源詳解
WebView在加載H5頁面時(shí),可能會(huì)因?yàn)榫彺鏅C(jī)制導(dǎo)致用戶看到舊版本的頁面,這篇文章主要介紹了如何解決Webview和H5緩存問題確保每次加載最新版本的資源的相關(guān)資料,需要的朋友可以參考下2025-02-02
使用js判斷TextBox控件值改變?nèi)缓蟪霭l(fā)事件
這篇文章主要介紹了使用js判斷TextBox控件值改變?nèi)缓蟪霭l(fā)事件。需要的朋友可以過來參考下,希望對大家有所幫助2014-03-03
BootStrap中的Fontawesome 圖標(biāo)
這篇文章主要介紹了BootStrap中Fontawesome 圖標(biāo)的相關(guān)知識(shí),需要的朋友可以參考下2017-05-05
KnockoutJS數(shù)組比較算法實(shí)例詳解
這篇文章主要介紹了KnockoutJS數(shù)組比較算法實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11

