제목 | APSN 개발중에 SSL: Broken pipe 문제가 발생됩니다. | ||
---|---|---|---|
글쓴이 | 조주상 | 작성시각 | 2013/08/30 14:29:01 |
|
|||
주소 https://github.com/antongorodezkiy/codeigniter-apns 위 주소의 라이브러리를 사용해 애플 푸쉬서버를 구축중에 있습니다. 아래 라이브러리로 1개의 단말에 push 메세지를 보내면 이상없이 작동하는데 약6만개의 디바이스에 푸쉬 메세지를 보내려고 하니 약 50개 정도 푸쉬를 보내는 중 SSL: Broken pipe 에러가 발생됩니다. 에러가 나는 부분은 $result = fwrite($this->pushStream, $msg, strlen($msg)); 요 부분에서 에러가 나온다고 하는데 정확한 에러메세지는 Severity: Warning Message: fwrite() [function.fwrite]: SSL: Broken pipe Filename: libraries/apn.php Line Number: 206 이렇습니다. 개발 소스는 센드메세지 부분만 토큰 어레이 만큼 돌리도록 개발하였습니다. 그러니까 for문을 약 6만번 정도 도는 것입니다. foreach ($array_ios as $value) {
$send_result = $this->apn->sendMessage($value, $this->input->post('send_message'), /*badge*/ 2, /*sound*/ 'default' );
}
기존에안드로이드 개발만 하다가 CI를 한지 한달정도 되었는데 가장 큰 벽에 부딫힌거 같습니다.ㅠㅠ혹시 이걸로 구현하신분이나 도움주실수 있으신분 계시면 감사하겠습니다. |
|||
다음글 | API는 어디있나요? (4) | ||
이전글 | session 질문이요~ (7) | ||
변종원(웅파)
/
2013/08/30 15:01:18 /
추천
0
|
조주상
/
2013/08/30 17:04:10 /
추천
0
답변감사합니다.
변종원님이 말씀하신대로 유효하지 않은 토큰으로 생각하고 리절트가 에러로 떨어지게 되면 다시 초기화를 하고 진행하니 문제있는 토크을 제외하곤 잘 보내지는 것 같습니다.. 근데 한가지더 문제가 발생하였습니다. Severity: Warning Message: stream_socket_client() [function.stream-socket-client]: SSL: connection timeout Filename: libraries/apn.php Line Number: 81 Severity: Warning Message: stream_socket_client() [function.stream-socket-client]: Failed to enable crypto Filename: libraries/apn.php Line Number: 81 Severity: Warning Message: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) Filename: libraries/apn.php Line Number: 81 타임아웃이 떨어지는 것 같은데요 혹시 이것에 대해도 알려주실수 없을까요? ㅠㅠ 검색해보면 대부분 pem 파일을 새로 받으라고 하는데 그것 아닌것 같습니다. 현재는 약 50개 정도 보내면 $this->apn->disconnectPush();
$this->apn->payloadMethod = 'enhance'; // you can turn on this method for debuggin purpose
$this->apn->connectToPush();
$this->apn->setData(array( 'someKey' => true ));
이소스를 타면서 연결을 끊고 재연결을 해서 하도록 해놓았는데 위와 같은 타임아웃 문제가 발생되네요 ㅠㅠ |
조주상
/
2013/08/30 20:55:13 /
추천
0
라이브러리 사용하지 않고 새로 만들어서 해결하였습니다.
|
산들바람
/
2014/02/12 10:19:17 /
추천
0
같은 문제로 고생 중 입니다. 해결 방법은 따로 없는건가요?
|
토큰중에서 invalid한 토큰일 경우 애플에서 접속을 끊는 것이라고 하네요.
http://stackoverflow.com/questions/2626054/get-ssl-broken-pipe-error-when-try-to-make-push-notification
에러 났을 때 예외처리로 하시거나 warning은 무시할 수도 있는 것이라 에러메세지가 안나타나도록 해도 됩니다.
단, 해당 토큰은 삭제를 하거나 삭제된 것으로 필드 처리를 하여 다음 번에 발송되지 않도록 해야겠죠.