2

는 :보내기 푸시 알림 (예 : PHP.)이 PHP 코드

<?php 
$apnsHost = 'gateway.sandbox.push.apple.com'; 
$apnsCert = 'apns-dev.pem'; 
$apnsPort = 2195; 

$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); 

$payload['aps'] = array('alert' => 'Oh hai!', 'badge' => 1, 'sound' => 'default'); 
$output = json_encode($payload); 
$token = pack('H*', str_replace(' ', '', $token)) 
$apnsMessage = chr(0) . chr(0) . chr(32) . $token . chr(0) . chr(strlen($output)) . $output; 
fwrite($apns, $apnsMessage); 

socket_close($apns); 
fclose($apns); 

?> 

당신은 PHP를 사용하여 푸시 알림을 보낼 수 있습니다. AIR 데스크탑 클라이언트에서 POST 변수를 비슷한 코드에 쉽게 전달하고 AS3 + PHP를 사용하여 알림을 보낼 수 있습니다.

질문 : 이론적으로 AS3 및 AIR (PHP가없는 경우) 만 사용하여 동일한 작업을 수행 할 수 있습니까? 누구 시도 했습니까? 방화벽 문제를 제외하고 결국 어떤 문제가 발생할 수 있습니까? 감사.

+0

당신은 클라이언트 사이에 직접 알림을 밀어 대해 이야기하고 있는가? – weltraumpirat

+0

위의 PHP 코드를 AS3으로 변환 할 수 있는지 간단히 알고 싶습니다 (예, direcly AIR 데스크톱 앱에서 소켓을 여는 것). – AsTheWormTurns

+0

ActionScript 내에서 XMLSocket http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/XMLSocket.html을 사용할 수 있지만 ** to ** 소켓을 열면됩니까? 당신은 여전히 ​​서버 측 코드가 필요할 것입니다. – weltraumpirat

답변

1

NetGroup 클래스가 이상적입니다. 장치 A에서 장치 B로, 장치 B에서 장치 B로 또는 그 반대로, 또는 여러 장치에서 원하는 것을 보낼 수 있습니다. 그것은 일종의 대화방처럼 작동하지만 문자열에만 국한되지 않습니다.

장치가 동일한 네트워크에 있지 않으면 장치를 Adobe Cirrus 서버 (테스트 및 비상업적 인 용도로는 무료) 또는 다른 FMS 서버 (Adobe 또는 Amazon 호스팅 등)를 통해 서로 소개해야합니다 서비스 또는 사용자 자신의 서버). 일단 소개되면 일반적으로 rtmfp 보안 피어 - 투 - 피어 프로토콜을 통해 서로에게 직접 통신합니다.이 프로토콜은 거의 모든 방화벽을 통과 할 수 있습니다. 드문 경우지만 FMS 서버가 직접 연결할 수 없으면 메시지를 릴레이 할 수 있습니다.

+0

코드에서 알 수 있듯이 다른 장치에 직접 연결하지는 않습니다. 코드는 서버에 소켓을 사용하고 서버는 장치에 알림을 보냅니다 (이 서버가 확인하면 다음과 같이 할 수 있습니다.) .pem 파일의 이유입니다). – AsTheWormTurns