1

我有一个混合MobileFirst应用程序。计划整合推送通知。该方法是后端将调用具有数组对象的适配器,该对象将具有用于推送通知的用户ID和消息。数组数将为100.每5分钟后端将在数组中调用该适配器100个计数。了解MobileFirst iOS Push调度程序

Adapter将解析数组并获取getUserNotificationSubscription,然后为数组中的每个用户ID调用notifyAllDevices。

数组对象看起来像下面

{ 

"notifications": [ 
    { 
       "userId": "userid", 
       "message": "Push Notification Message", 
       "notificationType": "Type of Notification", 
       "lineOfbusiness": "1", 
       "issueDate":"", 
       "uniqueIdentifier":"useruidd" 
    } 
      ] 
    } 

我的理解是,一旦你拨打notifyAllDevices,该API将在“通知状态数据库”补充通知和iOS调度处理APNS服务器和工作灯之间的连接服务器。

我读苹果APNS文档管理与APNS服务器的连接,最好的做法在一份报告中,

随身携带的APN跨多个通知,打开你的连接;不要反复打开和关闭连接。 APN将快速连接和断开视为拒绝服务攻击。除非您知道它会长时间处于空闲状态 - 例如,如果您每天仅向用户发送一次通知,则每天都可以使用新连接,否则应该保持连接处于打开状态。您可以建立到APN服务器的多个连接以提高性能。当您发送大量远程通知时,将它们分发到多个服务器端点的连接。与使用单个连接相比,这可以提高性能,让您更快地发送远程通知,并让APN更快地发送它们。

我想了解此MobileFirst iOS Dispatcher的工作原理。它遵循Apple建议的最佳实践吗?无法在IBM信息中心文档中找到详细信息。

+0

你使用什么版本的MobileFirst? –

回答

2

IBM MobileFirst遵循Apple提出的最佳实践。 IBM MobileFirst创建与APNS的持久套接字连接。

为了提高性能,默认情况下,MobileFirst使用APNS创建3个持久套接字连接。该值可以通过使用JNDI属性的用户被调谐:

push.apns.connections

持久连接未由IBM MobileFirst关闭。但是,如果用户希望正常关闭它(如果有延长的空闲时间),他们可以这样做使用JNDI属性

push.apns.connectionIdleTimeout

另外,如果有外部因素(例如防火墙)关闭与APNS打开的连接,MobileFirst重新创建连接(默认情况下定义为JNDI或3),并通过这些连接发送远程通知。如果用户的防火墙设置配置为关闭空闲套接字连接,则可以使用idletimeout JNDI属性在防火墙终止它们之前正常关闭套接字。