0
我正在使用Net :: SSLeay的庫(Net :: APNS :: Persistent)。該庫有助於與Apples APNS服務器進行通信。我發現如果我發送任何不良數據,例如錯誤的令牌或格式不正確的有效負載,程序會在三次嘗試後終止。它沒有顯示錯誤信息。使用perl連接蘋果APNS的問題
按我調試這個問題是從行號發生SSLeay.pm 1895年
$寫道= write_partial($ SSL,$寫,$ to_write,$$ data_ref);
我試圖捕捉,如果有任何例外,術語信號發送,但沒有運氣。如果出現網絡問題或任何類型的錯誤,我希望它應該顯示可以處理的錯誤消息/異常。但它只是無視任何事情而殺死程序。有沒有辦法來解決這個問題?我的代碼如下:
package apnsClient;
use Net::APNS::Persistent;
use Data::Dumper;
use Test::Trap;
my $cfg;
my $apns;
sub load {
my $class = shift;
my $self = {
_cfg => shift,
};
$cfg = $self->{_cfg};
bless $self, $class;
return $self;
}
sub connect {
my ($sandbox, $cert, $key, $pass) = $cfg->getAPNSServer();
print "[x] Cert $cert Key $key \n";
$apns = Net::APNS::Persistent->new({
sandbox => $sandbox,
cert => $cert,
key => $key,
}) or die("[-] Unable to connect to APNS server");
}
sub push {
my ($class,$token,$payload) = @_;
print "[+] Sending push with token: $token and Data: \n ".Dumper($payload);
$apns->queue_notification(
$token,
$payload
);
print "[+] Sending apns queue \n";
$apns->send_queue;
print "[+] Sent \n";
}
sub disconnect {
$apns->disconnect;
}
1;
您能提供一個完整的工作示例嗎? – user2968356