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屬性在防火牆終止它們之前正常關閉套接字。