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


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 相关文章推荐
jQuery 使用个人心得
Feb 26 Javascript
JS 去前后空格大全(IE9亲测)
Jul 15 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
Jun 17 Javascript
获取input标签的所有属性的方法
Jun 28 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
Dec 29 Javascript
js弹出窗口简单实现代码
Mar 22 Javascript
微信小程序与后台PHP交互的方法实例分析
Dec 10 Javascript
vue路由守卫及路由守卫无限循环问题详析
Sep 05 Javascript
taro 实现购物车逻辑的实例代码
Jun 05 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
Jul 14 Javascript
关于vue-cli3打包代码后白屏的解决方案
Sep 02 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
Nov 09 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 Ajax实现页面无刷新发表评论
2007/01/02 PHP
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
php中return的用法实例分析
2015/02/28 PHP
php简单判断文本编码的方法
2015/07/30 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
JavaScript经典效果集锦
2010/07/06 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
深入解析Python中的集合类型操作符
2015/08/19 Python
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
用Python 执行cmd命令
2020/12/18 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
历史专业毕业生的自我鉴定
2013/11/15 职场文书
二年级语文教学反思
2014/02/02 职场文书
《猫》教学反思
2014/02/26 职场文书
商业计划书格式、范文
2019/03/21 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python
如何用Python搭建gRPC服务
2021/06/30 Python