2012-04-06 79 views
0

我一直在這上面衝擊我一陣子,希望有人能幫忙嗎? 我有一些JavaPNS代碼,當從我的本地機器運行時,它會將罰款推到我的設備,但是,當我將該代碼複製到我的服務器時,一切運行正常,沒有錯誤,但我從來沒有得到我的設備上的警報? 從我的服務器檢查日誌與我的本地框相比,我發現我從來沒有在我的服務器上得到刷新消息,我使用30個線程的JavaPNS隊列。在這兩種情況下,本地盒子和服務器,我發送少於30個警報。JavaPNS - 從筆記本電腦正常工作,而不是從服務器?

public class PushWorker 
{ 
private PushQueue queue = null; 

public PushWorker(File keystore, String password, boolean production) throws KeystoreException 
{ 
    BasicConfigurator.configure(); 
    int threads = 30; 
    this.queue = Push.queue(keystore, password, production, threads); 
    queue.start(); 
} 

public void push(String message, String sound, String token, String eventId) throws JSONException 
{ 
    BasicDevice bd = new BasicDevice(); 
    bd.setToken(token); 

    PushNotificationPayload payload = PushNotificationPayload.complex(); 
    payload.addAlert(message); 
    payload.addSound(sound); 
    payload.addCustomDictionary("eid", eventId); 

    push(payload, bd); 
} 

private void push(Payload payload, Device device) 
{ 
    queue.add(payload, device); 
} 
} 

----下面是齊平的消息從我的地方框--------------

4872 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.notification.PushNotificationManager - Flushing 
4872 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.notification.PushNotificationManager - At this point, the entire 139-bytes message has been streamed out successfully through the SSL connection 
4872 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.notification.PushNotificationManager - Notification sent on first attempt 

我可以強制沖洗不知何故從隊列中?

---------------------- BELOW是服務器JavaPNS日誌記錄------------------ -----

0 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.communication.ConnectionToAppleServer - Creating SSLSocketFactory 
16 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.communication.ConnectionToAppleServer - Creating SSLSocketFactory 
49 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.communication.ConnectionToAppleServer - Creating SSLSocket to gateway.sandbox.push.apple.com:2195 
49 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.communication.ConnectionToAppleServer - Creating SSLSocket to gateway.sandbox.push.apple.com:2195 
177 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.notification.PushNotificationManager - Initialized Connection to Host: [gateway.sandbox.push.apple.com] Port: [2195]: 5117f31e[SSL_NULL_WITH_NULL_NULL: Socket[addr=gateway.sandbox.push.apple.com/17.172.233.65,port=2195,localport=56015]] 
... 
... 

DEBUG javapns.notification.Payload - Adding alert [blah, blah my alert] 
14767 [main] DEBUG javapns.notification.Payload - Adding sound [default] 
14767 [main] DEBUG javapns.notification.Payload - Adding custom Dictionary [eid] = [193790] 
14776 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.notification.PushNotificationManager - Building Raw message from deviceToken and payload 
14776 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.notification.PushNotificationManager - Built raw message ID 16777217 of total length 135 
14777 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.notification.PushNotificationManager - Attempting to send notification: {"aps":{"sound":"default","alert":"blah, blah my alert"},"eid":"193790"} 
14777 [JavaPNS grouped notification thread in QUEUE mode] DEBUG javapns.notification.PushNotificationManager - to device: [my device number] 

就是這樣,沒有沖水......

回答

0

你有服務器或其他一些防火牆設備上配置了iptables的?

  • 也許端口2195需要被允許。

使用telnet測試嘗試:

$遠程登錄gateway.sandbox.push.apple.com 2195

您是否啓用SELinux的?檢查以下設置:

$ getsebool -a | grep httpd

httpd_can_network_connect - >?

確認它已打開。

您是否檢查了javapns回購網站上的文檔?

讓我們知道它是如何發展的。

Bill

+0

謝謝比爾。我不認爲這是問題,因爲我可以使用這種方法從服務器發送警報:Push.payloads(密鑰倉庫,密碼,生產,列表); 我決定切換到批量發送而不是隊列發送這種方法... – steve 2012-04-10 02:26:35

相關問題