Пример #1
0
 apnConfigs.forEach(function (apnConfig, index) {
     let connection = "";
     if (apnConfig.cert && apnConfig.key) {
         apnConfig.maxConnections = apnConfig.maxConnections || 10;
         apnConfig.ca = ca;
         apnConfig.errorCallback = function (errorCode, notification, device) {
             if (device && device.token) {
                 const id = device.token.toString('hex');
                 logger.error("apn errorCallback errorCode %d %s", errorCode, id);
                 stats.addPushError(1, errorCode, self.type);
                 if (errorCode == 8) {
                     redis.hdel("apnTokens#" + apnConfig.bundleId, id);
                     redis.get("tokenToPushId#apn#" + id, function (err, oldPushId) {
                         logger.error("apn errorCallback pushId %s", oldPushId);
                         if (oldPushId) {
                             redis.del("pushIdToToken#" + oldPushId);
                             redis.del("tokenToPushId#apn#" + id);
                         }
                     });
                 }
             } else {
                 logger.error("apn errorCallback no token %s %j", errorCode, device);
             }
         }
         connection = apn.Connection(apnConfig);
         connection.index = index;
         connection.on("transmitted", function () {
             stats.addPushSuccess(1, self.type);
         });
     }
     self.apnConnections[apnConfig.bundleId] = connection;
     logger.info("apnConnections init for %s maxConnections %s", apnConfig.bundleId, apnConfig.maxConnections);
 });
Пример #2
0
 apnConfigs.forEach(function (apnConfig, index) {
     apnConfig.maxConnections = apnConfig.maxConnections || 10;
     apnConfig.ca = ca;
     apnConfig.errorCallback = function (errorCode, notification, device) {
         if (device && device.token) {
             var id = device.token.toString('hex');
             logger.error("apn errorCallback errorCode %d %s", errorCode, id);
             stats.addApnError(1, errorCode);
             redis.hdel("apnTokens#" + apnConfig.bundleId, id);
             redis.get("apnTokenToPushId#" + id, function (err, oldPushId) {
                 logger.error("apn errorCallback pushId %s", oldPushId);
                 if (oldPushId) {
                     redis.del("pushIdToApnData#" + oldPushId);
                     redis.del("apnTokenToPushId#" + id);
                 }
             });
         } else {
             logger.error("apn errorCallback no token %s %j", errorCode, device);
         }
     }
     var connection = apn.Connection(apnConfig);
     connection.index = index;
     outerThis.apnConnections[apnConfig.bundleId] = connection;
     connection.on("transmitted", function () {
         stats.addApnSuccess(1);
     });
     logger.info("apnConnections init for %s maxConnections %s", apnConfig.bundleId, apnConfig.maxConnections);
 });
Пример #3
0
  production: prod // by default: false unless the NODE_ENV environment variable is set to "production"
};

//console.log("[APNS] parameters:", CONN_OPTIONS);

var FEEDBACK_OPTIONS = {
  batchFeedback: true,
  interval: 300
};

var DEFAULT_EXPIRY = 24 * 60 * 60; // 1 day
var DEFAULT_BADGE = 0;
var DEFAULT_SOUND = 'ping.aiff';

//console.log("[APNS] Connecting...");
var apnConnection = apn.Connection(CONN_OPTIONS);

// listen to all events

apnConnection.on('connected', function() {
  console.log('[APNS] is connected');
});

apnConnection.on('transmitted', function(data, dest) {
  console.log(
    '[APNS] transmitted:',
    (data || {}).compiledPayload,
    'to',
    (dest || {}).token || '(unknown)'
  );
});