1.0.1 • Published 2 years ago

rtm-fpnn-nodejs-sdk v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

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;

接口说明