1.0.1 • Published 2 years ago
rtm-fpnn-nodejs-sdk v1.0.1
FPNN RTM Node.js SDK
依赖
IPV6
SOCKET
链接支持IPV6
接口- 兼容
DNS64/NAT64
网络环境
其他
- 消息发送接口仅支持
UTF-8
格式编码的string
类型数据,Binary
数据需进行Base64
编解码 - 支持部分ES6特性
es-checker
/babel-cli
/babel-preset-es2015
, 参考:node.green - 支持动态转Promise接口, 参考:Promise.promisifyAll
注意
- 使用之前请确保服务器时间校准,否则可能导致签名失败
Events
event
:connect
: 连接成功error
: 发生异常err
: (Error)
close
: 连接关闭retry
: (bool) 是否执行自动重连
一个例子
const Int64BE = require("int64-buffer").Int64BE;
//注册
RTMClient.RTMRegistration.register();
//构造
let client = new RTMServerClient({
pid: 11000001,
secret: 'ef3617e5-e886-4a4e-9eef-7263c0320628',
host: 'rtm-test.ilivedata.com',
port: 13315,
reconnect: true,
timeout: 20 * 1000,
debug: true
});
//添加监听
client.on('connect', function() {
console.log('connected!');
//发送业务消息
let from = new Int64BE(0, 1234);
let to = new Int64BE(0, 5678);
client.sendMessage(from, to, 8, 'hello !', '', new Int64BE(0), 10 * 1000, function(err, data) {
if (err) {
console.error(err.message);
return;
}
if (data) {
console.log(data);
}
});
});
client.on('error', function(err) {
console.error(err.message);
});
client.on('close', function() {
console.log('closed!');
});
//添加推送监听
let pushName = RTMConfig.SERVER_PUSH.recvMessage;
client.processor.addPushService(pushName, function(data) {
console.log('[PUSH] ' + pushName + ': ', data);
});
// 开启连接
client.connect();
//destroy
//client.destroy();
//client = null;