微信小程序实时聊天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 相关文章推荐
firefox中JS读取XML文件
Dec 21 Javascript
读jQuery之八 包装事件对象
Jun 21 Javascript
jQuery 拖动层(在可视区域范围内)
May 24 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
Apr 25 Javascript
PHP中使用微秒计算脚本执行时间例子
Nov 19 Javascript
JS实现页面超时后自动跳转到登陆页面
Jan 19 Javascript
express文件上传中间件Multer详解
Oct 24 Javascript
ajax异步请求详解
Jan 06 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
JS与CSS3实现图片响应鼠标移动放大效果示例
May 04 Javascript
Angular6 正则表达式允许输入部分中文字符
Sep 10 Javascript
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
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
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
Cookie 小记
2010/04/01 Javascript
DIV菜单层实现代码
2010/11/19 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
JavaScript字符串对象
2017/01/14 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
详解Python 函数参数的拆解
2020/09/02 Python
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
求职简历中自我评价
2014/01/28 职场文书
母婴店促销方案
2014/03/05 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
罚款通知怎么写
2015/04/22 职场文书
具结保证书范本
2015/05/11 职场文书
交通事故案件代理词
2015/05/23 职场文书
英文投诉信格式
2015/07/03 职场文书
在Python中如何使用yield
2021/06/07 Python
Python初识逻辑与if语句及用法大全
2021/08/07 Python