一、XpmJS 是啥
XpmJS可以链接任何云端资源,为小程序、移动应用提供云资源通道和后端能力。降低开发门槛,提升小程序的开发效率。无需编写后端代码,即可实现用户登录、WebSocket 通信、微信支付、云端数据表格、文件存储等功能。虽然 PHP 是最好的编程语言, 但是使用 XpmJS 后, 无需学习包括 PHP 在内的任何后端语言,用 Javascript 即可搞定一切,NodeJS 也不用!
二、为啥 XpmJS
从代码结构上看 XpmJS 更优雅!因为使用了 Promise!
XpmJS 封装了常用后端操作,还提供一个管理后台,微信支付只要一行代码就可以实现!
后端部署在你的云主机上!你可以完全掌控数据。
方法1: 一键安装
推荐使用腾讯云一键安装链接 ( 访问微信接口快, 可以免费申请 Https 证书 )
方法2: 安装脚本
安装前,先提前申请 Docker Hub 镜像 申请地址 https://www.daocloud.io/mirror
# 请采用 Ubuntu 14.04 64位 LTS
curl -sSL http://tuanduimao.com/xpmjs-server.sh | sh -s yourdomain.com http://<your id>.m.daocloud.io
方法3: 使用 Docker 安装
# 安装 Docker
curl -sSL https://get.daocloud.io/docker | sh
# 启动容器
docker run -d --name=xpmjs-server \
-e "HOST=yourdomain.com" \
-v /host/data:/data \
-v /host/apps:/apps \
-v /host/config:/config \
-p 80:80 -p 443:443 \
tuanduimao/xpmjs-server:1.0
XpmJS Server 升级
第一步: 下载代码:
curl http://xpmjs-1252011659.costj.myqcloud.com/xpmjs-server-1.0.tar.gz
第二步: 解压并更新:
tar xvfz xpmjs-server-1.0.tar.gz
cd 1.0 && docker cp . xpmjs-server:/code
三、XpmJS 咋用
1. 用户 ( User )
用户登录 login()
var user = app.xpm.require('User');
user.login().then( function( userInfo ) {
console.log( '用户登录成功', userInfo );
app.session.set('loginUser', userInfo );
})
.catch( function( excp ) {
console.log('用户登录失败', excp );
});
用户退出 logout()
var user = app.xpm.require('User');
user.logout().then( function( userInfo ) {
console.log( '用户注销成功', userInfo );
})
.catch( function( excp ) {
console.log('用户注销失败', excp );
});
读取资料 get()
来自微信客户端的用户信息 ( 非云端数据 )
var user = app.xpm.require('User');
user.get().then( function( userInfo ) {
console.log( '读取成功', userInfo );
})
.catch( function( excp ) {
console.log('读取失败', excp );
});
2. 信道( Wss )
使用 Websocket 信道,可以实现双向实时通信。
打开信道 open()
var wss = app.xpm.require('Wss');
wss.open('/wxapp').then(function( res ) {
console.log( '信道连接成功', res );
})
.catch( function( excp ) {
console.log('信道连接失败', excp );
});
在线用户 liveUsers ()
var wss = app.xpm.require('Wss');
wss.liveUsers().then(function( users ) {
console.log( '读取在线用户成功', users );
})
.catch( function( excp ) {
console.log('读取在线用户失败', excp );
});
用户信息数据结构
字段 | 中文 | 说明 |
---|---|---|
id | 客户端ID | |
_id | 用户ID | |
nickName | 微信昵称 | |
gender | 性别 | |
avatarUrl | 头像 | |
language | 语言 | |
group | 用户组 | |
isadmin | 是否是管理员 | 0 非管理员 1 管理员 |
检查用户是否在线 isOnline ( xpmjs-server 1.0rc4+ )
var user = app.xpm.require('User');
var wss = app.xpm.require('Wss');
user.login().then( function( userInfo ) {
return wss.isOnline( userInfo['_id'] )
}).then function( isOnline ) {
if ( isOnline ) {
console.log( '用户在线');
} else {
console.log( '用户离线');
}
})
.cat