微信小程序实时聊天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 相关文章推荐
基于jQuery的淡入淡出可自动切换的幻灯插件
Aug 24 Javascript
javascript textContent与innerText的异同分析
Oct 22 Javascript
jQuery自制提示框tooltip改进版
Aug 01 Javascript
基于JavaScript Array数组方法(新手必看篇)
Aug 20 Javascript
微信小程序 for 循环详解
Oct 09 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
Mar 27 Javascript
jquery实现静态搜索功能(可输入搜索文字)
Mar 28 jQuery
整理关于Bootstrap模态弹出框的慕课笔记
Mar 29 Javascript
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
Vue+axios实现统一接口管理的方法
Jul 23 Javascript
利用JS响应式修改vue实现页面的input值
Sep 02 Javascript
vue 需求 data中的数据之间的调用操作
Aug 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
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
DOM精简教程
2006/10/03 Javascript
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
JavaScript全局函数使用简单说明
2011/03/11 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
vue更改数组中的值实例代码详解
2020/02/07 Javascript
python计算文本文件行数的方法
2015/07/06 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
python自动生成model文件过程详解
2019/11/02 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
国际贸易个人求职信范文
2014/01/04 职场文书
高校教师思想汇报
2014/01/11 职场文书
学校安全教育制度
2014/01/31 职场文书
学期评语大全
2014/04/30 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
用golang如何替换某个文件中的字符串
2021/04/25 Golang
在 Python 中利用 Pool 进行多线程
2022/04/24 Python