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


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 相关文章推荐
firefox中JS读取XML文件
Dec 21 Javascript
很可爱的输入框
Aug 03 Javascript
fckeditor 获取文本框值的实现代码
Feb 09 Javascript
Three.js源码阅读笔记(Object3D类)
Dec 27 Javascript
JS随机漂浮广告代码具体实例
Nov 19 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
Mar 26 Javascript
JS+CSS实现滑动切换tab菜单效果
Aug 25 Javascript
Angular之指令Directive用法详解
Mar 01 Javascript
javascript中this用法实例详解
Apr 06 Javascript
ES6下子组件调用父组件的方法(推荐)
Feb 23 Javascript
js实现无限层级树形数据结构(创新算法)
Feb 27 Javascript
关于JavaScript 中 if包含逗号表达式
Nov 27 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实现的日历程序
2015/06/18 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
javascript中 try catch用法
2015/08/16 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
Vue 事件处理操作实例详解
2019/03/05 Javascript
JS实现动态无缝轮播
2020/01/11 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
Python读写Excel文件的实例
2013/11/01 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
分析Python读取文件时的路径问题
2018/02/11 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
党建示范点实施方案
2014/03/12 职场文书
联片教研活动总结
2014/07/01 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
2015年考研复习计划
2015/01/19 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
张丽莉观后感
2015/06/16 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫