微信小程序实时聊天WebSocket


Posted in Javascript onJuly 05, 2018

本文实例为大家分享了微信小程序实时聊天WebSocket的具体代码,供大家参考,具体内容如下

1.所有监听事件先在onload监听。

// 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 () {
  // 创建Socket
  SocketTask = wx.connectSocket({
   url: url,
   data: 'data',
   header: {
    'content-type': 'application/json'
   },
   method: 'post',
   success: function (res) {
    console.log('WebSocket连接创建', res)
   },
   fail: function (err) {
    wx.showToast({
     title: '网络异常!',
    })
    console.log(err)
   },
  })
  if (SocketTask) {
   SocketTask.onOpen(res => {
    console.log('监听 WebSocket 连接打开事件。', res)
   })
   SocketTask.onClose(onClose => {
    console.log('监听 WebSocket 连接关闭事件。', onClose)
   })
   SocketTask.onError(onError => {
    console.log('监听 WebSocket 错误。错误信息', onError)
   })
   SocketTask.onMessage(onMessage => {
    console.log('监听WebSocket接受到服务器的消息事件。服务器返回的消息', 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就发送数据给服务器
   sendSocketMessage(data)
  }
 },
 bindKeyInput: function (e) {
  this.setData({
   inputValue: e.detail.value
  })
 },
 
 onHide: function () {
   SocketTask.close(function (close) {
    console.log('关闭 WebSocket 连接。', close)
   })
 },
})
 
//通过 WebSocket 连接发送数据,需要先 wx.connectSocket,并在 wx.onSocketOpen 回调之后才能发送。
function sendSocketMessage(data) {
 console.log('通过 WebSocket 连接发送数据')
 if (socketOpen) {
  SocketTask.send({data: JSON.stringify(data)
  }, function (res) {
   console.log('已发送', res)
  })
 } else {
  socketMsgQueue.push(msg)
 }
}

html

<input type="text" bindinput="bindKeyInput" value='{{inputValue}}' placeholder="" />
<button bindtap="submitTo" class='user_input_text'>发送</button>

微信小程序实时聊天WebSocket

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js文件缓存之版本管理详解
Jul 05 Javascript
javascript自动生成包含数字与字符的随机字符串
Feb 09 Javascript
Javascript闭包实例详解
Nov 29 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
May 16 Javascript
JavaScript性能优化总结之加载与执行
Aug 11 Javascript
微信小程序 网络请求(post请求,get请求)
Jan 17 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
Feb 06 Javascript
jQuery实现轮播图及其原理详解
Apr 12 jQuery
vue+mock.js实现前后端分离
Jul 24 Javascript
原生javascript单例模式的应用实例分析
Feb 23 Javascript
聊聊JS ES6中的解构
Apr 29 Javascript
JavaScript canvas实现流星特效
May 20 Javascript
vue v-model实现自定义样式多选与单选功能
Jul 05 #Javascript
基于vue展开收起动画的示例代码
Jul 05 #Javascript
微信小程序实现星级评分和展示
Jul 05 #Javascript
vue-router history模式下的微信分享小结
Jul 05 #Javascript
微信小程序实现运动步数排行功能(可删除)
Jul 05 #Javascript
微信小程序之批量上传并压缩图片的实例代码
Jul 05 #Javascript
JavaScript控制浏览器全屏显示简单示例
Jul 05 #Javascript
You might like
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
php 代码优化的42条建议 推荐
2009/09/25 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
javascript中expression的用法整理
2014/05/13 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
bootstrap轮播图示例代码分享
2017/05/17 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
Python字典,函数,全局变量代码解析
2017/12/18 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
Python线程之定位与销毁的实现
2019/02/17 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
Python 音频生成器的实现示例
2019/12/24 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
python绘制动态曲线教程
2020/02/24 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
简述 Python 的类和对象
2020/08/21 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
汉语专业毕业生自荐信
2014/07/06 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
上课迟到检讨书
2015/05/06 职场文书
初中体育课教学反思
2016/02/16 职场文书