微信小程序实时聊天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 中 document.createEvent的用法
Aug 29 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
Nov 14 Javascript
Js,alert出现乱码问题的解决方法
Jun 19 Javascript
当前页禁止复制粘贴截屏代码小集
Jul 24 Javascript
JavaScript对内存分配及管理机制详细解析
Nov 11 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
Jan 15 Javascript
jquery+javascript编写国籍控件
Feb 12 Javascript
原生js实现addclass,removeclass,toggleclasss实例
Nov 24 Javascript
JS实现多张图片预览同步上传功能
Jun 23 Javascript
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
微信小程序的注册页面包含倒计时验证码、获取用户信息
May 22 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
Sep 22 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
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
帝国cms目录结构分享
2015/07/06 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
学习使用bootstrap基本控件(table、form、button)
2016/04/12 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
Vue精简版风格概述
2018/01/30 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
python中的多重继承实例讲解
2014/09/28 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
Python 实现国产SM3加密算法的示例代码
2020/09/21 Python
测试工程师岗位职责
2013/11/28 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
学校捐书活动总结
2015/05/08 职场文书
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技