0

C# を使用して iOS プッシュ通知を実行しようとしています。しかし、Apple の URL ( gateway.sandbox.push.apple.com:2195 ) に接続できません。グーグルから、このポートをホスティングサーバーで開く必要があることがわかりました。

Linuxでは、彼らはこのようにすると言った

root@uio3-i [~]# telnet gateway.sandbox.push.apple.com 2195
Trying XX.XXX.XXX.XX...
Connected to gateway.sandbox.push.apple.com.
Escape character is '^]'.
^\q
^]
telnet> q
Connection closed.
root@uio3-i [~]#

Windowsサーバーでこれを試したところ、うまくいきませんでした。私はサーバー技術に不慣れです。私のWindowsサーバーで同じことをテストする方法は? リモートアクセスできる専用サーバーを手に入れました

助けてください よろしくお願いします

4

1 に答える 1

0
    $passphrase = "Your_PEM_File_Password_Here";

    $ctx = stream_context_create();
    stream_context_set_option($ctx, 'ssl', 'local_cert', YOUR_PEM_FILE_PATH_HERE);
    stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
// use this when you in sandbox mode..
    $fp = stream_socket_client(
        'ssl://gateway.sandbox.push.apple.com:2195', $err,
    $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
// use this when you in development mode..
//  $fp = stream_socket_client(
//  'ssl://gateway.push.apple.com:2195', $err,
//$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

    $body['aps'] = array(
        'badge' => $badge,
        'alert' => "Your Message Here.",
        'sound' => 'default',
        'content-available' => '1'
    );
//echo "<pre>"; print_r($body);
    $payload = json_encode($body);

    $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;

    $result = fwrite($fp, $msg, strlen($msg));  //echo "<pre>"; print_R($result);

    if (!$result){
        $data = array(
            'Message' => 'Message not delivered' . PHP_EOL
            );
        }  else {
    $data = array(
            'Message' => 'Message successfully delivered' . PHP_EOL
            );
    } //echo "<pre>"; print_R($result);

    fclose($fp);
于 2015-05-06T10:18:53.963 に答える