第十三章 公众账号接收非文字消息
前面写的教程都是些基础的功能介绍,是为了后面能够整合起来做一些完整的应用,相信很多人应该都消化的差不多了,接下来要开始进入实际案例了,我自己规划的是三个案例:
- 公司通讯录。知识点:微信账号绑定、数据库操作等
- 媒体类应用。知识点:文章分类、分页查询、模糊查询等
- 餐馆系统。知识点:餐馆地址查询、下单、计算价格等
今天先把说案例前最后一点内容讲掉。
一、SAE上数据库的使用
想要做一些真正能用起来的微信应用我们就必须要使用数据库,当然有人说我可以使用XML或者数据、文件这些,但其实质是一样的,就是要对数据进行存储、查询和管理。
SAE上是使用的MySQL数据库,关于MySQL的介绍我就不写了,各位自己百度吧,首先是启动MySQL的服务,大家进入到应用的界面后在左栏的找到如下图:
点击MySQL选项,然后右边会出现如下图,这里要注意的是每个MySQL服务都是跟单个应用捆绑的,即如果有多个SAE要使用数据库仍然要重新初始化:
点击初始化MySQL按钮,会弹出保护密码框,输入保护密码后再点击会提示开启成功,页面可能不会自动刷新,可以手动刷新下页面,然后就可以看到MySQL服务已经启动了,如下图:
这个操作生成了一个新的数据库,每个数据库里是可以有很多张表的,数据呢就是存放在表里面,大家可以把它想象成为一个文件夹,这个文件夹里有很多XLS表格,每个表格里都有不同的数据。
- 删除该数据库并关闭数据库服务,请谨慎操作。
- 管理MySQL数据库,如建表。
- 有时候SAE的应用之间需要互相调用数据库,而每个数据库只能是本应用调用,使用这个就可以跨应用操作了。
- 检查数据库是否正常运作。
点击管理MySQL按钮进入数据库管理界面,SAE使用的是PHPMyAdmin这个在线数据库管理工具,这个工具非常好用,基本使用MySQL的人都用这个,界面很直观,功能很强大。建表这个事情咱们放到第一个案例里讲,数据库先到这里。
二、SAE上缓存的使用
缓存这个词语相信很多人都是听说过的,缓存在计算机的软硬件里其实都存在,比如CPU里有缓存,浏览网站时有缓存,它的作用是把最常用的数据从存储器里提出来临时放在缓存里,就像把工具和材料搬上工作台一样,这样会比用时现去仓库取更方便。
那么在应用开发时使用缓存的场景一般是保存数据库的查询结果,比如ZTalk的每日一曲每天都是固定的一首歌,这首歌会根据当天的日期,然后从数据库里把歌曲信息查找出来然后返回给用户。
每天大概有差不多2000多位朋友会发送V来听歌,也就是说要进行2000多次的查询操作,而返回的结果是一样的,这种查询2000次是没有影响的,但如果是2万次、20万次呢?所以我是将每天的查询结果做了缓存,6个小时更新一次,这样就可以降低开销。
并且缓存的读写速度都是大大高于数据库的,结果能够更快的返回给用户,用户在使用的时候体验也会更加的好。
SAE上用的缓存是Memcache,这是个高性能的分布式的内存对象缓存系统,具体资料也请百度吧,首先是启动服务,大家进入到应用的界面后在左栏的找到如下图:
点击Memcache选项,然后右边会出现如下图,
点击初始化MC的按钮后会出现要求填写缓存容量的窗口,如下图:
这个容量是指Memcache的大小,当你往缓存里存放的数据超过10M时,Memcache会自动删除一些数据,容量选的越高每天消耗的云豆越多,我选的是10M,主要就是存放一些常用的数据库查询结果,文字为主,基本够用。选择提交后如下图:
- 调整缓存容量。
- 监测Memcache是否正常工作。
- 停止Memcache。
- 最近24小时内缓存的命中率,就是指用户是发出查询指令时数据是通过缓存得到的还是通过数据库得到的,一般好的命中率应该在50%以上,如果很低说明设置的缓存机制有问题或者有些操作不需要设缓存。
- 缓存的内存驻留时间,缓存一般是用来做临时存放用的,所以要在适当时候回收。
- 用来测试缓存的生成,在KEY这个输入框里是缓存名,上面是存放的数据,大家可以分别填一下试试。
- 测试生成缓存后读取,可以将前面设置的缓存名填写到KEY的输入框点击GET按钮,就可以看到前面存放的数据了。
- 点击后所有的缓存将全部清空,然后重新根据程序建立。
Memcache的使用以及缓存的生成都是通过代码实现的,我们将在后面案例里实际运用。
二、第三方云存储平台的使用
有很多朋友在后台说,为什么听ZTalk的音乐一点都不卡,而自己写的程序放出来的音乐很卡,很简单就是SAE的Storage非常垃圾,特别是给普通开发者用的,连CDN都没有怎么可能快。
ZTalk的音乐其实是放在又拍云存储上的,还有微信教程的代码,这是一个专业的第三方云存储平台,主要可以用来存放一些图片、音乐、文档等体积较大的文件,朋友们如果开发应用中需要用到大文件的下载、使用可以考虑。后面案例里会有图片上传的使用,会使用又拍云的代码。
又拍云的网址是 http://www.upyun.com/ ,进入后如下图:
目前又拍云存储的使用是要申请的,还要人工审核,比较麻烦,不过我在跟他们谈让给些免费名额,大家先申请了再说吧,点击立即申请进入,如下图:
填表格我就不累述了,就提两个:
1、账号类型请选个人比较方便。
2、网站域名大家干脆填SAE上的应用域名吧。
提交申请后就进入后台,由于没有审核通过还不能进行任何操作,我先拿自己的给大家讲解下,如下图:
上面那些乱七八糟提示的东西咱不用理他,先点击创建空间来建立咱们的存储空间,点击后出现下图:
先填写空间名称,然后选择空间类型,这里图片和文件我推荐选择文件,图片类空间只是多了一个可以生成缩略图的API接口,其他没用,容量自己估计,如果是放音乐1000M起吧。设置完成后点击确定后这个空间就生成了,可以看到左边栏多了一个选项,如下图:
点击新建立的空间名称就进入空间管理,如下图:
这里首先要做是给空间授权一个管理员,点击标示为2的地方,有两种选择,一是授权现有管理员,二是新增管理员并授权。授权完成后该管理员就有了管理这个空间的权限。
在又拍云存储里文件上传跟SAE是不一样的,它没有图形化管理页面,文件上传两种方式,一是通过接口代码,二是使用FTP,FTP软件网上很多,大家可以自己下载,同时也有很多FTP的使用教材,我就不再重复了。
点击标示为1的地方,可以看到FTP的信息,如下图:
- FTP的访问地址,有4个可选择,如果搞不清楚自己是什么宽带的选第四个自动判断吧。
- FTP账号和密码就是授权的管理员的账号和密码。
- 外网访问的连接地址,如果在空间里有个a.txt文件,我们要访问时就是访问地址+/1.txt。
大家如果要使用又拍云存储的,可以自行注册,注册完后在后台回复“又拍云+自己申请的账号名称“,我统一扔给他们,让他们给大家开权限给优惠。
今天就先讲到这里,后面开始进入案例实操。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。