1

I am following the tutorial from this website:

https://blog.engineyard.com/2013/developing-ios-push-notifications-nodejs

to deliver push Notification in my app.

I have successfully created the certificate and other files so far. In the server side, I couldn't pass through the Making the Connection step.

I can get my device token in console while running the app. In the tutorial it is said that, after making the connection the Terminal console should give a output as "gateway connected".

But I am not getting this message. The worst case is I am not getting any error message either. I wonder what went wrong. Even though I got some errors in making the connection first like insufficient credentials, mac verify error, I solved those. Now am neither getting any error nor the correct message.

I also add my Terminal console here

SIVAs-MacBook-Air:~ AAA$ cd Desktop/
SIVAs-MacBook-Air:Desktop AAA$ cd poservices/
SIVAs-MacBook-Air:poservices AAA$ node agent/_header.js
SIVAs-MacBook-Air:poservices AAA$ node agent/_header.js
SIVAs-MacBook-Air:poservices AAA$`


var join = require('path').join
  , pfx = join(__dirname, '../_certs/pfx.p12');

/*!
 * Create a new gateway agent
 */

var apnagent = require('apnagent')
  , agent = module.exports = new apnagent.Agent();


/*!
 * Configure agent
 */

agent
  .set('pfx file', pfx)
  .enable('sandbox');

/*!
 * Error Mitigation
 */

agent.on('message:error', function (err, msg) {
   connect.log('error1');
  switch (err.name) {

// This error occurs when Apple reports an issue parsing the message.
case 'GatewayNotificationError':
  console.log('[message:error] GatewayNotificationError: %s', err.message);


  // The err.code is the number that Apple reports.
  // Example: 8 means the token supplied is invalid or not subscribed
  // to notifications for your application.
  if (err.code === 8) {        
    console.log('    > %s', msg.device().toString());
    // In production you should flag this token as invalid and not
    // send any futher messages to it until you confirm validity
  }

  break;

// This happens when apnagent has a problem encoding the message for transfer
case 'SerializationError':
  console.log('[message:error] SerializationError: %s', err.message);

  break;

// unlikely, but could occur if trying to send over a dead socket
default:
  console.log('[message:error] other error: %s', err.message);      
  break;
  }
});

/*!
 * Make the connection
 */


agent.connect(function (err) {
  // gracefully handle auth problems
  if (err && err.name === 'GatewayAuthorizationError') {

console.log('Authentication Error: %s', err.message);
process.exit(1);
  }

  // handle any other err (not likely)
  else if (err) {
    console.log('error1');
    throw err;
  }

  // it worked!
  var env = agent.enabled('sandbox')
    ? 'sandbox'
    : 'production';
  console.log('apnagent [%s] gateway connected', env);
});
halfer
  • 19,824
  • 17
  • 99
  • 186
AAA
  • 1,957
  • 4
  • 23
  • 42

1 Answers1

0

You need to add

agent.set('passphrase', '<YOUR_PASSWORD>');

after

agent.set('pfx file', pfx).enable('sandbox');
user3386877
  • 515
  • 1
  • 5
  • 12