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


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 相关文章推荐
JavaScript CSS 修改学习第四章 透明度设置
Feb 19 Javascript
iframe窗口高度自适应的实现方法
Jan 08 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
Nov 26 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
Jul 17 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
Nov 07 Javascript
bootstrap多种样式进度条展示
Dec 20 Javascript
基于bootstrap风格的弹框插件
Dec 28 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
Jan 15 Javascript
Javascript Promise用法详解
May 10 Javascript
结合Vue控制字符和字节的显示个数的示例
May 17 Javascript
详解在网页上通过JS实现文本的语音朗读
Mar 28 Javascript
详解Vue 如何监听Array的变化
Jun 06 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
轻松修复Discuz!数据库
2008/05/03 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
JavaScript实现时间表动态效果
2017/07/15 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
python if not in 多条件判断代码
2016/09/21 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
绩效考核实施方案
2014/03/18 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
Java 写一个简单的图书管理系统
2022/04/26 Java/Android
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python