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


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 相关文章推荐
js客户端快捷键管理类的较完整实现和应用
Jun 08 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
Apr 12 Javascript
使用jquery修改表单的提交地址基本思路
Jun 04 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
Sep 01 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
Mar 04 Javascript
jquery实现倒计时功能
Dec 28 Javascript
JS调用安卓手机摄像头扫描二维码
Oct 16 Javascript
vue+node实现图片上传及预览的示例方法
Nov 22 Javascript
vue自动化路由的实现代码
Sep 30 Javascript
Vue组件模板及组件互相引用代码实例
Mar 11 Javascript
JavaScript内置对象之Array的使用小结
May 12 Javascript
通过实例解析json与jsonp原理及使用方法
Sep 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
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
python修改FTP服务器上的文件名
2019/09/11 Python
pandas 空数据处理方法详解
2019/11/02 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
幼儿园教师辞职信
2014/01/18 职场文书
20年同学聚会邀请函
2014/02/04 职场文书
股指期货心得体会
2014/09/13 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
就业推荐表院系意见
2015/06/05 职场文书
车辆管理制度范本
2015/08/05 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis