Push ios notifications: Connection reset from user

I'm trying to make a notification system for Apple devices, but Im getting the following errors when I try to run it on the server:

Warning: stream_socket_client (): SSL: reset connection from user to / home / empresa / public _html / simplepush / push.php on line 30

Warning: stream_socket_client (): Failed to enable cryptography in / home / empresa / public _html / push / push.php on line 30

Warning: stream_socket_client (): cannot connect to ssl: //gateway.sandbox.push.apple.com: 2195 (Unknown error) in / home / empresa / public _html / push / push.php on line 30 Connection failed: 0

My code is:

<?php ini_set('display_errors','On'); error_reporting(E_ALL); $deviceToken= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $passphrase = ' '; $message = 'my first notification'; //////////////////////////////////////////////////////////////////////////////// $ctx = stream_context_create(); stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem'); stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase); // Open a connection to the APNS server $fp = stream_socket_client( 'ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); if (!$fp) exit("Failed to connect: $err $errstr" . PHP_EOL); echo 'Connected to APNS' . PHP_EOL; // Create the payload body $body['aps'] = array( 'alert' => $message, 'sound' => 'default' ); // Encode the payload as JSON $payload = json_encode($body); // Build the binary notification $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload; // Send it to the server $result = fwrite($fp, $msg, strlen($msg)); if (!$result) echo 'Message not delivered' . PHP_EOL; else echo 'Message successfully delivered' . PHP_EOL; // Close the connection to the server fclose($fp); 

What can happen? Thanks.

+5
source share
1 answer

I cannot be sure of a special reason

But please make sure that you are not doing anything wrong:

  • Do not make many connections in parallel. Either reuse the same connect or close the connection after delivery of Push Notifications. In fact, servers have a limit for the maximum number of concurrent connections that can leave you in trouble as soon as you reach the threshold. Apple also offers to leave the connection open, if only you know that it will be inactive.

    Keep your APN connections open for multiple notifications; dont open and close connections several times. APN sees fast connect and disconnect as a denial of service attack. You should leave the connection open if you do not know that it will be idle for a long period of time, for example, if you only send notifications to your users once a day, it is normal to use a new connection every day.

  • Do not send developer profile tokens to LIVE APNS. Keep distributions and application extensions. This can lead to if you try to send sandbox tokens to LIVE APNS or vice versa.

SOURCE - APNS - push ios notifications: Connection reset using PHP partner>

+1
source

All Articles