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


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实现数组内值索引随机化及创建随机数组的方法
Aug 10 Javascript
jquery实现通用的内容渐显Tab选项卡效果
Sep 07 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
May 20 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
Jul 04 Javascript
jQuery事件对象总结
Oct 17 Javascript
详解Angular 自定义结构指令
Jun 21 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
Oct 24 Javascript
js调用设备摄像头的方法
Jul 19 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
Aug 07 Javascript
JavaScript模板引擎原理与用法详解
Dec 24 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
Feb 20 Javascript
js 根据对象数组中的属性进行排序实现代码
Sep 12 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二分法在IP地址查询中的应用
2008/08/12 PHP
深入php内核之php in array
2015/11/10 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
js实现表格数据搜索
2020/08/09 Javascript
[53:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第三场 1月18日
2021/03/11 DOTA
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
python实现猜拳小游戏
2020/04/05 Python
Python谱减法语音降噪实例
2019/12/18 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
新闻专业个人自我评价
2013/09/21 职场文书
护理专科毕业推荐信
2013/11/10 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
中秋晚会活动方案
2014/08/31 职场文书