微信小程序实时聊天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 相关文章推荐
innerHTML,outerHTML,innerTEXT三者之间的区别
Jan 28 Javascript
JavaScript中null与undefined分析
Jul 25 Javascript
在多个页面使用同一个HTML片段《续》
Mar 04 Javascript
jQuery代码优化 遍历篇
Nov 01 Javascript
javascript中typeof操作符和constucor属性检测
Feb 26 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
Jan 29 Javascript
浅析Javascript ES6中的原生Promise
Aug 25 Javascript
jquery组件WebUploader文件上传用法详解
Oct 23 Javascript
几行js代码实现自适应
Feb 24 Javascript
探秘vue-rx 2.0(推荐)
Sep 21 Javascript
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
梳理一下vue中的生命周期
Dec 30 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
PHP 加密与解密的斗争
2009/04/17 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
javascript写的一个链表实现代码
2009/10/25 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
详解Java中String JSONObject JSONArray List转换
2020/11/13 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
mysql 之通过配置文件链接数据库
2017/08/12 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
用python处理MS Word的实例讲解
2018/05/08 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
Python数据正态性检验实现过程
2020/04/18 Python
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
公司建议书怎么写
2014/05/15 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
经典导游欢迎词
2015/01/26 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
Vue.Draggable实现交换位置
2022/04/07 Vue.js