发送推送通知时发生Worklight错误

问题描述:

我正尝试使用Worklight推送通知来发送推送iOS + Android应用程序。发送推送通知时发生Worklight错误

我在我的适配器中创建了submitNotification函数,当我调用它时,它说推送已成功发送,但实际上,我没有在我的设备中收到推送。

当我看到日志我可以读:

Couldn't connect to APNS server 
java.net.PlainSocketImpl.socketConnect(Native Method) 
java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 
java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432) 
java.net.Socket.connect(Socket.java:529) 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:570) 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:371) 
com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:71) 
com.notnoop.apns.internal.ApnsConnectionImpl.socket(ApnsConnectionImpl.java:133) 
com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:160) 
com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:46) 
com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:52) 
com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:36) 
com.worklight.integration.notification.apns.ApplicationConnection.sendNotification(ApplicationConnection.java:84) 
com.worklight.integration.notification.apns.APNSMediator.sendNotification(APNSMediator.java:85) 
com.worklight.integration.notification.Mediator$4.run(Mediator.java:174) 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
java.util.concurrent.FutureTask.run(FutureTask.java:138) 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
java.lang.Thread.run(Thread.java:680) 

Couldn't send message [email protected]         com.notnoop.apns.internal.ApnsConnectionImpl.socket(ApnsConnectionImpl.java:146) 
com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:160) 
com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:46) 
com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:52) 
com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:36) 
com.worklight.integration.notification.apns.ApplicationConnection.sendNotification(ApplicationConnection.java:84) 
com.worklight.integration.notification.apns.APNSMediator.sendNotification(APNSMediator.java:85) 
com.worklight.integration.notification.Mediator$4.run(Mediator.java:174) 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
java.util.concurrent.FutureTask.run(FutureTask.java:138) 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
java.lang.Thread.run(Thread.java:680) 

然后

Failed to send message com.notnoop.apns.EnhancedApnsNot[email protected] trying again 

我submitNotification功能:

function submitNotification(userId, notificationText) { 
    var userSubscription = WL.Server.getUserNotificationSubscription(
      'myAdapter.MyPushEventSource', userId); 

    if (userSubscription == null) { 
     return { 
      result : "No subscription found for user :: " + userId 
     }; 
    } 

    WL.Logger.debug("submitNotification >> userId :: " + userId + ", text :: " 
      + notificationText); 

    WL.Server.notifyAllDevices(userSubscription, { 
     badge : 1, 
     activateButtonLabel : "Open", 
     alert : notificationText 
    }); 

    return { 
     result : "Notification sent to user :: " + userId 
    }; 
} 

我的代码有问题吗?或与我的网络?

+0

这是一个网络问题 – WiPhone 2013-03-15 10:17:13

+0

你也可以把它写成下面的答案,并且标记稍后会回答吗?谢谢。 – 2013-03-15 15:06:11

+0

是的,我可以,但我应该等待几个小时:我有这个stackoverflow消息“声誉低于10的用户在问了8个小时后不能回答自己的问题,你可以在几个小时内回答,在此之前请使用评论,或者编辑你的问题。“ – WiPhone 2013-03-15 17:43:44

这终究是一个网络问题。

我们更改了防火墙配置,以允许访问Google和Apple推送服务器。 对于苹果的服务器,你可以在这个地址找到更多的细节:http://developer.apple.com/library/ios/#technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG41

整个17.0.0.0/8地址块分配给苹果公司,这样你就可以 指定您的防火墙规则范围。