微信小程序 聊天室简单实现


Posted in Javascript onApril 19, 2017

微信小程序 聊天室简单实现

utils文件夹下websoctet.js文件

var url = 'ws://地址端口';

function connect(user, func) {

 wx.connectSocket({
  url: url,
  header: {"content-type":'application/x-www-form-urlencoded'}
 });
 wx.onSocketOpen(function (res) {
  send('{"type":"login","client_name":"'+user.nickName+'","room_id":"1"}')
 });
//接受消息
 wx.onSocketMessage(func);
}

//发送消息
function send(msg) {
 wx.sendSocketMessage({ data: msg });
}
module.exports = {
 connect: connect,
 send: send
}

具体页面.js文件内容:

var websocket = require('../../utils/websocket.js');
 //事件处理函数
 add: function (e) {
  websocket.send('{"type":"say","from_client_id":"'+user.nickName+'","to_client_id":"all","content":"'+this.data.message+'"}')
 },
 onLoad: function () {
  var that = this
  //调用应用实例的方法获取全局数据
  app.getUserInfo(function (userInfo) {
   user = userInfo;
   websocket.connect(user, function (res) {
    text = that.encodeStr(res.data) + "\n";
    console.log(res)
    that.setData({
     text: text
    });
    // websocket.send('{"type":"pong"}');
   })
  })
 },

下面方法很好玩,因为使用的服务器 是开源的PHP服务器,所以微信小程序接收到的聊天室中文内容是ASCII编码,所以经过此方法可以转换。

encodeStr: function (str) {
  var character = str.split("\\u");
  var native1 = character[0];
  for (var i = 1; i < character.length; i++) {
   var code = character[i];
   native1 += String.fromCharCode(parseInt("0x" + code.substring(0, 4)));
   if (code.length > 4) {
    native1 += code.substring(4, code.length);
   }
  }
  return native1
 },

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
javascript高亮效果的二种实现方法
Sep 14 Javascript
javascript vvorld 在线加密破解方法
Nov 13 Javascript
js中将字符串转换成json的三种方式
Jan 12 Javascript
jqgrid 编辑添加功能详细解析
Nov 08 Javascript
微信小程序 WebSocket详解及应用
Jan 21 Javascript
jQuery图片轮播功能实例代码
Jan 29 Javascript
折叠菜单及选择器的运用
Feb 03 Javascript
VScode格式化ESlint方法(最全最好用方法)
Sep 10 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
Dec 25 Javascript
详细分析JavaScript中的深浅拷贝
Sep 17 Javascript
微信小程序实现选项卡滑动切换
Oct 22 Javascript
微信小程序实现购物车功能
Nov 18 Javascript
Vuex之理解Store的用法
Apr 19 #Javascript
微信小程序 判断手机号的实现代码
Apr 19 #Javascript
Vuex简单入门
Apr 19 #Javascript
微信小程序 滚动到某个位置添加class效果实现代码
Apr 19 #Javascript
微信小程序 slider的简单实例
Apr 19 #Javascript
详解Node.js中exports和module.exports的区别
Apr 19 #Javascript
jQuery ajax请求struts action实现异步刷新
Apr 19 #jQuery
You might like
php while循环得到循环次数
2013/10/26 PHP
浅谈php冒泡排序
2014/12/30 PHP
php限制文件下载速度的代码
2015/10/20 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
js版本A*寻路算法
2006/12/22 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
opencv与numpy的图像基本操作
2019/03/08 Python
基于python的列表list和集合set操作
2019/11/24 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
CSS3 实现的加载动画
2020/12/07 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
公司道歉信范文
2014/01/09 职场文书
运动会通讯稿200字
2014/02/16 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
教师年度考核评语
2014/04/28 职场文书
房屋转让协议书
2014/10/18 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
毕业生学校组织意见
2015/06/04 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
如何使用php生成zip压缩包
2021/04/21 PHP
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android