我正在遵循一个教程,该教程要求我打开套接字并发送带有证书的有效负载: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中重写上面的代码,还是有更适合这个任务的东西?
答案 0 :(得分:0)
查看stream_context_create的PHP文档,以及您正在关注的教程,我认为您要完成的是打开与gatway.sandbox.push.apple.com的SSL安全套接字连接。
我认为您要查看的python模块是ssl module。从客户端连接到服务器有一个example,可能会将ssl.wrap_socket()
的密钥文件和certfile选项设置为您创建并注册的证书,以便与苹果服务器通信。