本项目是 Wafer 的组成部分,为小程序客户端开发提供 SDK 支持会话服务和信道服务。
SDK 安装
解决方案 wafer2-quickstart 已经集成并使用最新版的 SDK,需要快速了解的可以从 Demo 开始。
安装之后,就可以使用 require
引用 SDK 模块:
var qcloud = require('./node_modules/wafer2-client-sdk/index.js');
会话服务
会话服务让小程序拥有会话管理能力。
登录
登录可以在小程序和服务器之间建立会话,服务器由此可以获取到用户的标识和信息。
var qcloud = require('./node_modules/wafer2-client-sdk/index.js');
// 设置登录地址
qcloud.setLoginUrl('https://199447./weapp/login');
qcloud.login({
success: function (userInfo) {
console.log('登录成功', userInfo);
},
fail: function (err) {
console.log('登录失败', err);
}
});
本 SDK 需要配合云端 SDK 才能提供完整会话服务。通过 setLoginUrl 设置登录地址,云服务器在该地址上使用云端 SDK 处理登录请求。
setLoginUrl
方法设置登录地址之后会一直有效,因此你可以在微信小程序启动时设置。
登录成功后,可以获取到当前微信用户的基本信息。
请求
如果希望小程序的网络请求包含会话,登录之后使用 request 方法进行网络请求即可。
qcloud.request({
url: 'http://199447./user',
success: function (response) {
console.log(response);
},
fail: function (err) {
console.log(err);
}
});
如果调用 request
之前还没有登录,则请求不会带有会话。request
方法也支持 login
参数支持在请求之前自动登录。
// 使用 login 参数之前,需要设置登录地址
qcloud.setLoginUrl('https://199447./login');
qcloud.request({
login: true,
url: 'http://199447./user',
success: function (response) {
console.log(response);
},
fail: function (err) {
console.log(err);
}
});
关于会话服务详细技术说明,请参考 Wiki。
信道服务
信道服务小程序支持利用腾讯云的信道资源使用 WebSocket 服务。
// 创建信道,需要给定后台服务地址
var tunnel = this.tunnel = new qcloud.Tunnel('https://199447./tunnel');
// 监听信道内置消息,包括 connect/close/reconnecting/reconnect/error
tunnel.on('connect', () => console.log('WebSocket 信道已连接'));
tunnel.on('close', () => console.log('WebSocket 信道已断开'));
tunnel.on('reconnecting', () => console.log('WebSocket 信道正在重连...'));
tunnel.on('reconnect', () => console.log('WebSocket 信道重连成功'));
tunnel.on('error', error => console.error('信道发生错误:', error));
// 监听自定义消息(服务器进行推送)
tunnel.on('speak', speak => console.log('收到 speak 消息:', speak));
// 打开信道
tunnel.open();
// 发送消息
tunnel.emit('speak', { word: "hello", who: { nickName: "techird" }});
// 关闭信道
tunnel.close();
信道服务同样需要业务服务器配合云端 SDK 支持,构造信道实例的时候需要提供业务服务器提供的信道服务地址。通过监听信道消息以及自定义消息来通过信道实现业务。