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


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 相关文章推荐
YUI 读码日记之 YAHOO.util.Dom - Part.1
Mar 22 Javascript
jQuery中offset()方法用法实例
Jan 16 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
Sep 19 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
Sep 19 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
jQuery插件扩展测试实例
Jun 21 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
Jan 04 Javascript
新闻上下滚动jquery 超简洁(必看篇)
Jan 21 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
微信小程序 本地数据存储实例详解
Apr 13 Javascript
JavaScript之iterable_动力节点Java学院整理
Jun 29 Javascript
js数据类型检测总结
Aug 05 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空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
php的dl函数用法实例
2014/11/06 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
Python实现方便使用的级联进度信息实例
2015/05/05 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
pymongo中group by的操作方法教程
2019/03/22 Python
Python 从attribute到property详解
2020/03/05 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
Pyqt助手安装PyQt5帮助文档过程图解
2020/11/20 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
中级会计职业生涯规划范文
2014/01/16 职场文书
高校教师个人工作总结2014
2014/12/17 职场文书
英语感谢信范文
2015/01/20 职场文书