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


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中更短的 Array 类型转换
Oct 30 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
Nov 28 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
Dec 12 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
Jul 07 Javascript
javascript数组遍历的方法实例分析
Sep 13 Javascript
javascript动画之磁性吸附效果篇
Dec 09 Javascript
Node.js中用D3.js的方法示例
Jan 16 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
Sep 26 Javascript
pm2 部署 node的三种方法示例
Oct 20 Javascript
微信小程序实现图片上传、删除和预览功能的方法
Dec 18 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
Aug 25 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
Nov 19 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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
PHP的加密方式及原理
2012/06/14 PHP
php通过字符串调用函数示例
2014/03/02 PHP
php获取目标函数执行时间示例
2014/03/04 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
用于table内容排序
2006/07/21 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
Dom操作之兼容技巧分享
2011/09/20 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
2015年教师节活动总结
2015/03/20 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
Golang实现AES对称加密的过程详解
2021/05/20 Golang