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


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 相关文章推荐
Android中资源文件(非代码部分)的使用概览
Dec 18 Javascript
js Date概念详细介绍
Nov 22 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
Apr 12 Javascript
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
Sep 24 Javascript
深入浅析JS Function()构造函数
Aug 22 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
Sep 27 Javascript
jQuery展示表格点击变色、全选、删除
Jan 05 Javascript
用JavaScript实现让浏览器停止载入页面的方法
Jan 19 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
Aug 24 Javascript
AngularJs 终极购物车(实例讲解)
Nov 08 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
Sep 13 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
DIY实用性框形天线
2021/03/02 无线电
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
jQuery中Ajax的get、post等方法详解
2015/01/20 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
Python中的Descriptor描述符学习教程
2016/06/02 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
以下的初始化有什么区别
2013/12/16 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
酒店保洁主管岗位职责
2013/11/28 职场文书
合伙经营协议书范本
2014/04/18 职场文书
社团活动总结怎么写
2014/06/30 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
银行授权委托书样本
2014/10/13 职场文书
老公保证书怎么写
2015/02/26 职场文书
2015年小学语文教学工作总结
2015/05/25 职场文书