微信小程序实时聊天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 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
Apr 12 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
Oct 08 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
Jan 06 Javascript
JS使用正则表达式验证身份证号码
Jun 23 Javascript
使用express搭建一个简单的查询服务器的方法
Feb 09 Javascript
Angular @HostBinding()和@HostListener()用法
Mar 05 Javascript
vue 做移动端微信公众号采坑经验记录
Apr 26 Javascript
Smartour 让网页导览变得更简单(推荐)
Jul 19 Javascript
JavaScript实现好看的跟随彩色气泡效果
Feb 06 Javascript
vue flex 布局实现div均分自动换行的示例代码
Aug 05 Javascript
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
React四级菜单的实现
Apr 08 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面试题集锦
2012/03/08 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
window.location 对象所包含的属性
2014/10/10 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
jQuery中extend函数简单用法示例
2017/10/11 jQuery
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
Python Tkinter基础控件用法
2014/09/03 Python
跟老齐学Python之for循环语句
2014/10/02 Python
python如何读写json数据
2018/03/21 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
异常和异常类的概念
2014/09/12 面试题
.NET remoting的两种通道是什么
2016/05/31 面试题
配件采购员岗位职责
2013/12/03 职场文书
环保倡议书范文
2014/05/12 职场文书
询价采购方案
2014/06/09 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
公司停电通知
2015/04/15 职场文书
抢劫罪辩护词
2015/05/21 职场文书
Python中使用ipython的详细教程
2021/06/22 Python
Element实现动态表格的示例代码
2021/08/02 Javascript
python Tkinter模块使用方法详解
2022/04/07 Python
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技