使用 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 应用程序发送推送通知的最简单方法是啥?