我正在使用这个Ruby代码在不成功的推送时从APN接收错误:
if IO.select([ssl], nil, nil, 5)
read_buffer = ssl.read(6)
process_error_response(read_buffer)
end
Run Code Online (Sandbox Code Playgroud)
我注意到一个奇怪的情况,其中IO.select是非nil但read_buffer返回一个空字符串.经过一些调试后,我意识到如果您使用开发APNs证书连接到gateway.push.apple.com会发生这种情况,如果您使用生产证书连接到gateway.sandbox.push.apple.com,则会发生同样的事情.
有没有办法以编程方式检测到这种情况,例如,如果您获得了用户的推送证书并告诉它的生产/开发,但实际上无法在Apple开发人员网站上验证这一事实?我本以为连接会被拒绝,但它似乎是在创建但处于部分破坏的状态.