Handling Push Notification

Discussion in 'iOS Programming' started by coolnitman, Oct 22, 2016.

  1. coolnitman macrumors member

    Joined:
    Nov 29, 2012
    #1
    Hey guys, i'm new to Push notification. I have script in NodeJS which send push notification to user when someone comment's on his profile. But push notification is sent based on the device token so for example when A user logs in with his iPhone and then he log out and logs with account B from same iPhone then there device token will be same. So if someone comments on A's profile then that notification is sent on B's device which is currently logged in on the same iPhone. How to handle this type of situation ?
     
  2. coolnitman thread starter macrumors member

    Joined:
    Nov 29, 2012
  3. AxoNeuron, Nov 8, 2016
    Last edited: Nov 8, 2016

    AxoNeuron macrumors 65816

    AxoNeuron

    Joined:
    Apr 22, 2012
    Location:
    The Left Coast
    #3
    The device token should be de-registered from your server when a user logs out and should be a random string. You should maintain a server database of device installs which get associated with accounts and device tokens. That way, if you want to send a push notification to user X, and that user has 3 devices that all have your app installed, your server will send 3 separate push notifications to all of the user's devices. This also let's the user customize which devices receive push notifications from your app and which ones don't.

    On my servers, here is how it works.

    1. Some action occurs that causes my server to want to send a push notification to some user.

    2. My server performs a query of the DeviceInstalls collection/table for any rows that have the userID of this given userID. If we find multiple entries it means the user has installed the app on multiple devices.

    3. It pulls the "pushToken" property from all the rows and sends the push notification to all of them. Note: on each row there is also an "apnsEnabled" Boolean property. My server will only send a push notification if this property is set to TRUE.

    If the user were ever to sign out or disable push notifications on one of their devices, it would call a deregisterPushNotifications endpoint on my backend which would search the DB for this device ID and would switch the apnsEnabled property to FALSE.
     

Share This Page