yog-ral
Version:
node-ral with mcpack and nshead
89 lines (69 loc) • 2.06 kB
Markdown
@baidu/yog-ral
------------------
## 简介
@baidu/yog-ral 模块为 [node-ral](https://github.com/fex-team/node-ral) 的扩展版,主要扩展功能为
- mcpack2 数据格式支持
- nshead 请求协议支持
- bns 资源定位支持
- webfoot 服务描述支持
在使用上 @baidu/yog-ral 与 node-ral 保持一致,仅在配置上拥有更多的配置项
## 使用说明
**注意** 由于依赖 bns/mcpack,因此目前仅支持在开发机环境于线上机环境下搭配指定的 [Node.js](wiki.baidu.com/pages/viewpage.action?pageId=182206703) 使用
如何无需使用 bns/mcpack 可以直接使用[node-ral](https://github.com/fex-team/node-ral)
### 安装
```bash
npm i @baidu/yog-ral --save
```
使用方法可以参考测试用例 ral.js
### RAL初始化
```javascript
RAL.init({
confDir : __dirname + path.sep + './config',
logger : {
"log_path" : __dirname + path.sep + '../logs',
"app" : "yog-ral"
},
currentIDC : 'tc'
});
```
### 服务配置
```javascript
module.exports = {
PASSPORT: {
balance: 'random',
webfoot: 'group.ess-session.passport.cn'
}
};
```
或
```javascript
module.exports = {
'PASSPORT': {
unpack: 'mcpack2',
pack: 'mcpack2',
encoding: 'gbk',
balance: 'random',
protocol: 'nshead',
server: [
{ bns: 'group.ess-session.passport.cn'}
]
}
};
```
### 发起请求
```javascript
var RAL = require('yog-ral').RAL;
var request = RAL('PASSPORT', {
data: {
'cmd': 0x01004,
'apid': 1055,
'clientip': ip2int('127.0.0.1'),
'bduss': "GRwaW5wT2ZKbkdLRm9zWGFtQXRvYWgtWW5lc2tKTUVuZURjQ29VT0MtTDBDeFJVQVFBQUFBJCQAAAAAAAAAAAEAAACINUIG1cXI~cDuy8Rob21lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPR-7FP0fuxTW"
},
retry: 2,
timeout: 500
});
request.on('data', function(data){
data.uname.should.be.eql('张三李四home');
});
```