If you are using Apple Push Tokens (APNS HTTP/2) then your message can be up to 4KB. Using the older Apple Push Certificates, the payload is limited to 2KB. The entire message payload for PubNub publish/subscribe supports maximum 32KB which includes the pn_apns (and pn_gcm) data.
{
"pn_apns": {
"aps": {
"alert": "Your order is ready for pickup!",
"payment_info": {
"credit_card": 987656789876,
"expiration": "0108"
}
}
},
"pn_gcm": {
"notification": "Your order is ready for pickup!",
"payment_info": {
"credit_card": 987656789876,
"expiration": "0108"
}
},
"message": {
"info": "This is data all non-APNS and non-GCM devices would receive. They would also receive the pn_apns and pn_gcm data."
"note": "Your order is ready for pickup!",
"payment_info": {
"credit_card": 987656789876,
"expiration": "0108"
}
}
}
The entire payload above will be sent to active PubNub subscribers (including the pn_apns and pn_gcm data). But only the data inside the pn_apns section will be sent as an APNS message and displayed a push notification on an iOS device.
For more details, see Sending APNS and GCM Messages to Subscribers and Mobile Push Notification Services in One API Call.