微信小程序实时聊天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 相关文章推荐
用 javascript 实现的点击复制代码
Mar 24 Javascript
prototype Element学习笔记(篇二)
Oct 26 Javascript
让div层随鼠标移动的实现代码 ie ff
Dec 18 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
Aug 30 Javascript
JavaScript中遍历对象的property的3种方法介绍
Dec 30 Javascript
基于JQuery打造无缝滚动新闻步骤详解
Mar 31 Javascript
JavaScript面试题大全(推荐)
Sep 22 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
Feb 23 Javascript
使用Bootstrap打造特色进度条效果
May 02 Javascript
将angular.js项目整合到.net mvc中的方法详解
Jun 29 Javascript
Angular4学习教程之HTML属性绑定的方法
Jan 04 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
Nov 05 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
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
vuejs事件中心管理组件间的通信详解
2017/08/09 Javascript
js禁止表单重复提交
2017/08/29 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
python删除列表中重复记录的方法
2015/04/28 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
python模块之time模块(实例讲解)
2017/09/13 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
军训的自我鉴定
2013/12/10 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
法院个人总结
2015/03/03 职场文书
毕业欢送会致辞
2015/07/29 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python