使用 NodeJS 后端推送通知

Posted

技术标签:

【中文标题】使用 NodeJS 后端推送通知【英文标题】:Push Notifications with NodeJS backend 【发布时间】:2016-08-20 05:22:13 【问题描述】:

我目前正在为 ios 应用程序做推送通知。我使用 PostgresSQL 和 NodeJS 作为后端,当我在网上查看时,似乎没有直接的方法来实现两个设备之间的对等推送通知。有经验的人的任何帮助都会非常有帮助。

【问题讨论】:

nodejs-and-socket-io-for-push-notifications 据我所知,Peer-to-Peer 是没有办法的,你只能通过你的服务器。结帐节点-apn。 【参考方案1】:

您可以使用Parse SDK 细分您希望向其发送个人消息的用户。他们的服务将于 1 月停用,但您仍然可以托管自己的 MongoDB 实例并保留其平台的全部功能。

注册您的登录用户以接收推送通知:

UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];       
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];

在您的 AppDelegate 中实现 didRegisterForRemoteNotificationsWithDeviceToken 方法

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)newDeviceToken 
     NSLog(@"didRegisterForRemoteNotifications");
     // Store the deviceToken in the current installation and save it to Parse.
     PFInstallation *currentInstallation = [PFInstallation currentInstallation];
     [currentInstallation setDeviceTokenFromData:newDeviceToken];

     if ([PFUser currentUser]) 
         [currentInstallation setObject:[PFUser currentUser] forKey:@"user"];
     

     [currentInstallation saveInBackground];

这会创建一个指向用户帐户的指针,我们将使用它来划分用户:

NSString *toUserObjectId = someUser.objectId; //someUser is a 'PFUser' object

// segment the user
PFQuery *innerQuery = [PFUser query];
[innerQuery whereKey:@"objectId" equalTo:toUserObjectId];

PFQuery *query = [PFInstallation query];
[query whereKey:@"user" matchesQuery:innerQuery];

NSDictionary *pushData = @
                           @"alert": @"some message",
                           //   @"p": someStringPayload, 
                           @"badge": @"Increment",
                           @"sound": @"cheering.caf",
                           ;

PFPush *push = [[PFPush alloc] init];
[push setData:pushData];
//[push expireAfterTimeInterval:interval];
[push setQuery:query];
[push sendPushInBackground];

如果您要走这条路,我会在他们现有的服务上启动一个新应用程序,然后迁移到其他地方。希望这会有所帮助。

【讨论】:

以上是关于使用 NodeJS 后端推送通知的主要内容,如果未能解决你的问题,请参考以下文章

使用 NodeJS 向 iOS 应用程序发送推送通知的最简单方法是啥?

Nodejs 静默推送通知在 iOS 13 中不起作用

如何在 nodejs 中使用 FCM 发送 AWS SNS 推送通知?

推送天蓝色通知中心的通知

使用 NodeJS 对 Google 推送通知的操作

使用 NodeJs Express 在 JavaScript 上推送通知