2012-10-31 26 views
6

मैं जावा में Google App Engine और JDO के साथ एक आईओएस ऐप के लिए सर्वर पक्ष विकसित कर रहा हूं, और मुझे अभी एहसास हुआ कि जीएई ऐप्पल पुश अधिसूचना सेवा का समर्थन नहीं करता है, और मैं बहुत निराश हूं।Google ऐप इंजन एपीएनएस

मुझे शहरी एयरशिप, xtify, आदि जैसे कई समाधान देखा गया है; लेकिन अगर मैं उपयोगकर्ताओं की एक महत्वपूर्ण राशि तक पहुंच जाता हूं तो यह बहुत महंगा है।

इसके अलावा, मैं जावपन और सिमिलर्स के बारे में जांच कर रहा हूं, लेकिन जीएई ने बाउंसीकास्टल का समर्थन नहीं किया है।

मैं जानना चाहता हूं कि मेरे जीएई सर्वर में एपीएनएस के समर्थन के लिए एक मुफ्त या कम लागत वाला समाधान है, क्योंकि मैं प्रति माह 200 डॉलर का भुगतान नहीं कर सकता। यदि मेरी समस्या का समाधान नहीं है, तो क्या जावाफोन के साथ ऐप्पल पुश नोटिकेशन करने के लिए केवल एक और सर्वर बनाना संभव होगा, और यह कि मेरे जीएई इसके साथ बात करते हैं?

उत्तर

0

इस here पर चर्चा करने वाला एक धागा है, और आप सॉकेट बीटा here के लिए साइन अप कर सकते हैं।

मुझे नहीं पता कि यह आपको वह करने देगा जो आप करना चाहते हैं, लेकिन बाद वाले धागे पर लोगों को लगता है कि यह होगा।

+0

धन्यवाद लेकिन यह अभी भी बीटा चरण पर है, और मुझे थोड़े समय की आवश्यकता है। मैंने साइन अप किया है लेकिन मुझे कोई उम्मीद नहीं है। –

+0

यदि आपके पास उपयोगकर्ताओं की एक महत्वपूर्ण मात्रा है तो यह संभावना नहीं है कि जीएई प्रदान करने वाला मुफ्त कोटा किसी भी मामले में पर्याप्त होगा। हां, आप एक और सर्वर बना सकते हैं जो जीएई निश्चित रूप से बात करता है। –

+0

बेशक, लेकिन मैं केवल ऐप्पल की अधिसूचनाओं के लिए एक सर्वर बनाना नहीं चाहता हूं। मैं जीएई में एपीएनएस बनाने का एक तरीका खोज रहा हूं, लेकिन मुझे नहीं पता कि क्या शहरी एयरशिप उपयोगकर्ताओं की एक छोटी राशि के लिए नि: शुल्क है या यदि मेरे सर्वर को बहुत सारी सूचनाएं मिलती हैं (मैं चैट बना रहा हूं, तो अगर मैं एक संदेश लिखता हूं, एक अधिसूचना दूसरे व्यक्ति को भेजी जानी चाहिए)। फिर भी धन्यवाद। –

0

चूंकि आपको चैट के लिए इसकी आवश्यकता है, क्लाइंट से आंतरिक रूप से पुश नोटिफिकेशन पोस्ट करने की सोचने की कोशिश कर रहा है (जबकि आपका सर्वर आपके दोस्तों के पुश टोकन प्रदान करता है)। यह आपके चैट प्रस्ताव के लिए अच्छी तरह फिट हो सकता है।

1

ऐपइंजिन अब सॉकेट का समर्थन करता है ताकि आप अब javapns के थोड़ा संशोधित संस्करण का उपयोग करने में सक्षम होना चाहिए। मैंने सफलतापूर्वक ऐपइंजिन (पायथन) पर काम कर रहे पीएएपीएन को प्राप्त किया है जो नई सॉकेट कार्यक्षमता का उपयोग 1.7.7 में करता है।

यदि आप मेरी पायथन ऐपइंजिन प्रोजेक्ट को देखने में रुचि रखते हैं जो एपीएनएस करता है, तो मुझे बताएं और मैं इसके लिंक को इसके साथ संपादित कर दूंगा। हर बार जब मैं यहां एक लिंक पोस्ट करता हूं, तो एक मॉडरेटर कुछ कारणों से मेरा उत्तर हटा देता है

0

ऐपेंगिन अब 1.7.7 में सॉकेट का समर्थन करता है ताकि आप एपीएनएस का उपयोग कर सकें। जावा रनटाइम जावा-एपीएनएस lib का उपयोग मामूली संशोधन के साथ कर सकता है। Here is a blogpost on the modifications needed

3

मैं तृतीय-पक्ष लाइब्रेरी notnoop/java-apns का उपयोग करता हूं। यह प्रयोग करने में आसान है।

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "modifyThreadGroup") 

मुद्दा Maven केंद्रीय में संस्करण 1.0.0.Beta3 में हल किया जाता है: समस्या सिर्फ तुमसे मिलने सकता GAE जावा अपवाद नीचे की तरह पर धागा सीमा है। इस पुल अनुरोध #162 में विस्तार समाधान समझाया गया है।

तो, तैयार करने और APN के लिए धक्का अधिसूचना भेजने के लिए उदाहरण कोड का टुकड़ा नीचे की तरह है, धागा सीमा हल करने के लिए कुंजी के रूप में

नीचे
// Prepare ApnsService 
ClassPathResource certificate = new ClassPathResource("aps_production.p12"); 

ApnsService service = null; 
try { 
    service = APNS.newService() 
     .withErrorDetectionThreadFactory(ThreadManager.currentRequestThreadFactory()) // use GAE currentRequestThreadFactory 
     .withCert(certificate.getInputStream(), certificatePassword) 
     .withProductionDestination() 
     .build(); 
} catch (InvalidSSLConfig | IOException e) { 
    logger.warn("Fail to initialize APNs service"); 
} 

// Send notification 
String apnsPayload = APNS.newPayload() 
    .alertBody("test alert") 
    .badge(1) 
    .sound("default") 
    .customField("type", "general") 
    .build(); 

service.push(<your device id>, apnsPayload); 
0

आप बाहर java-apns-gae जाँच कर सकते हैं विधि withErrorDetectionThreadFactory है।

यह open-source Java APNS library है जिसे विशेष रूप से Google App Engine पर काम करने (और उपयोग करने) के लिए डिज़ाइन किया गया था।