var SocketTaskPage({/*** 页面的初始数据*/data: {topLabel: '',iploads: app.iploads,inputlg: 0,message: '',//消息内容toUser:'',//接收用户idsocketStatus:false,//有没有打开webSocket链接xtyhbh:'',//医生聊天BH},bindmsg(e) {//输入文字不大于300if (e.detail.value.length <= 300) {this.setData({message: e.detail.value,inputlg: e.detail.value.length})}},openSocket() {//监听状态SocketTask.onOpen(() => {// console.log('WebSocket 已连接')this.setData({socketStatus:true})})SocketTask.onClose(() => {// console.log('WebSocket 已断开')this.setData({socketStatus:false})})SocketTask.onError(error => {// console.error('发生错误', JSON.stringify(error))// this.setData({// loading: false// })})// 监听服务器推送消息SocketTask.onMessage(message => {// console.log('收到服务器信道消息');message.data=JSON.parse(message.data)console.log('socket message:', message.data)let chatList=[]switch (Number(message.data.type)) {case 9:chatList=this.data.chatListchatList.push({egp: 1,isSelf: true,content: this.data.message,imgSrc: 'https://ossweb-img.qq.com/images/lol/web201310/skin/big143004.jpg',time: message.data.formDate})this.setData({chatList,message:'',inputlg:0})break;case 3:chatList=this.data.chatListchatList.push({egp: 1,isSelf: false,content: message.data.message,imgSrc: 'https://ossweb-img.qq.com/images/lol/web201310/skin/big143004.jpg',time: message.data.formDate})this.setData({chatList})break;}})},openSocket() {//第二种监听写法wx.onSocketOpen(() => {// console.log('WebSocket 已连接')this.setData({socketStatus:true})})wx.onSocketClose(() => {// console.log('WebSocket 已断开')this.setData({socketStatus:false})})wx.onSocketError(error => {console.error('发生错误', JSON.stringify(error))// this.setData({// loading: false// })})// 监听服务器推送消息wx.onSocketMessage(message => {// console.log('收到服务器信道消息');message.data=JSON.parse(message.data)console.log('socket message:', message.data)let chatList=[]switch (Number(message.data.type)) {case 9:chatList=this.data.chatListchatList.push({egp: 1,isSelf: true,content: this.data.message,imgSrc: 'https://ossweb-img.qq.com/images/lol/web201310/skin/big143004.jpg',time: message.data.formDate})this.setData({chatList,message:'',inputlg:0})break;case 3:chatList=this.data.chatListchatList.push({egp: 1,isSelf: false,content: message.data.message,imgSrc: 'https://ossweb-img.qq.com/images/lol/web201310/skin/big143004.jpg',time: message.data.formDate})this.setData({chatList})break;}})},webSocket(){//长链接请求SocketTask=wx.connectSocket({url: 'http://192.168.3.5'+'?token=55555555555555555555555ss',})// SocketTask.onOpen((result) => {console.log('onOpen: true',result)})// SocketTask.onMessage((result) => {console.log('onMessage: true',result)})//服务器返回的消息this.openSocket()},sendSocketMessage() {//发送消息if(this.data.socketStatus){if(this.data.message){let data={type:3,toUser:this.data.xtyhbh,//发送给谁// formUser:'',//谁发送的message:this.data.message,//发送的消息sendNo:this.uuid2()}//每条消息IDSocketTask.send({data: JSON.stringify(data)})}else{Toast.fail('消息不能为空');}}else{Toast.fail('发送失败,未连接上服务器');}},chat() {//滚动到底部this.setData({chat: this.data.chatList.length-1,})},uuid2() {//uuid2随机数32位var s = [];var hexDigits = "0123456789abcdef";for (var i = 0; i < 32; i++) {s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);}s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01s[8] = s[13] = s[18] = s[23];var uuid = s.join("");return uuid;},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {this.setData({bh: options.bh,topLabel: options.xm})this.webSocket()},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {SocketTask.close()//关闭webSocket链接},/*** 生命周期函数--监听页面卸载*/onUnload: function () {SocketTask.close()//关闭webSocket链接},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {}})
<scroll-view scroll-into-view="chat{{chat}}"><view class="cu-chat" id="chat{{index}}" wx:for="{{chatList}}" wx:key="index" wx:for-item="chatitem"></view></scroll-view>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号