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


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 实现无缝滚动 兼容IE和FF
Jul 15 Javascript
关于js中for in的缺陷浅析
Dec 02 Javascript
js 绑定键盘鼠标事件示例代码
Feb 12 Javascript
javascript中Date()函数在各浏览器中的显示效果
Jun 18 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
May 25 Javascript
Javascript中prototype的使用详解
Jun 18 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
Jul 22 Javascript
jquery层级选择器的实现(匹配后代元素div)
Sep 05 Javascript
bootstrap 通过加减按钮实现输入框组功能
Nov 15 Javascript
canvas轨迹回放功能实现
Dec 20 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
Aug 25 Javascript
vue-router 中 meta的用法详解
Nov 01 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缓存类代码
2015/10/23 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
深入分析JSONP跨域的原理
2014/12/10 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
jquery性能优化高级技巧
2015/08/24 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
python快速查找算法应用实例
2014/09/26 Python
Mac 上切换Python多版本
2017/06/17 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
一百行python代码将图片转成字符画
2021/02/19 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
国际贸易专业推荐信
2013/11/15 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
户外宣传策划方案
2014/05/25 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server