1

我正在遵循一个教程,该教程要求我打开一个套接字并发送带有证书的有效负载:http: //blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/ .

我在弄清楚如何使用 python 执行以下操作时遇到了一些困难:

// Open the connection
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apns-dev.pem';

$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);

// Send the payload
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);

// Close Resources
socket_close($apns);
fclose($apns);

我过去使用过 python-requests。但仅适用于简单的获取请求。

我可以使用 python-requests 在 python 中重写上面的代码,还是有更适合这个任务的东西?

4

1 回答 1

0

查看 stream_context_create 的 PHP 文档,以及您正在遵循的教程,我认为您要完成的是打开与 gatway.sandbox.push.apple.com 的 SSL 安全套接字连接。

我认为您要查看的 python 模块是ssl 模块。有一个从客户端连接到服务器的示例ssl.wrap_socket(),可能将密钥文件和证书文件选项设置为您创建并注册的证书以与苹果服务器通信。

于 2012-08-10T15:38:47.783 回答