2013-01-04 6 views
3

푸시 알림을 보내는 PHP 코드가 프록시로 작동하는지 확인해야합니다. 저는 Charles를 설치했고 모든 웹 트래픽을 프록시 (127.0.0.1:8888)를 통해 볼 수있었습니다.Charles와 SSL 사용하기 Apple 푸시 주소

이제 푸시 알림용 스크립트가 제대로 작동하는지 확인하고 싶습니다. 내가 가진 : 내 푸시 알림을 받고 있어요

stream_context_set_option($ctx, 'http', 'proxy', 'tcp://127.0.0.1:8888'); 
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err,$errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 

하지만 난 찰스에서 무슨 일이 일어나고 있는지 볼 수 없습니다. 그래서 내 스크립트는 프록시를 사용하지 않습니다 ...

이유를 알고 계십니까? 당신이 대신 http:// 또는 https://ssl:// 래퍼를 사용하는 점에 더 - 당신이 stream_socket_client()http 옵션이있는 컨텍스트를 통과하기 때문에

+2

나를 설치 한 것은 대체 무엇입니까? – Charles

+0

@Charles;) 나는 http://www.charlesproxy.com을 의미한다. – Pierre

+0

사실. 따라서 여기서는 야생이라고 추측 할 수 있지만 스트림 컨텍스트의 * http * 프록시 옵션이 * https *에도 적용된다는 것을 알고 있습니까? – Charles

답변

2

이다.

stream_socket_*() 함수는 사용자가 HTTP를 구현하고 있다는 것을 모르기 때문에 http 컨텍스트 옵션을 사용하지 않습니다. 당신이 수동으로 HTTP를 구현하는 애플 API에 대한 당신을 줄 것이라는 세밀하게 제어 할 필요 가능성이 있기 때문에

$fp = fopen('https://gateway.sandbox.push.apple.com:2195/path/to/file', 'r', false, $ctx); 

이 어쨌든 아마 더 좋은 생각이다.

+0

좋아, 무슨 뜻인지는 모르겠지만 지금은이 오류가 있습니다 : fopen (gateway.sandbox.push.apple.com:2195) [function.fopen] : 스트림을 열지 못했습니다 : 프록시를 통해 HTTPS 서버에 연결할 수 없습니다 – Pierre

+0

@ 피에르 글쎄 Charles가 SSL을 통과시키기에 적절하게 설정되지 않은 것 같습니다. 이것은 내가 충분히 알고있는 것이 아닙니다. 프록시를 사용하고 https url에 액세스하려고 웹 브라우저를 구성하면 제대로 작동합니까? Charles는 오류를 기록합니까? – DaveRandom

+0

내 브라우저를 통해 https URL에 액세스 할 수 있습니다 (페이스 북과 같은) – Pierre