使用此 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)来做同样的事情?有人试过吗?除了防火墙问题,最终会导致什么问题?谢谢。
最佳答案
NetGroup类是理想的。您可以将所需的任何内容从设备 A 发送到设备 B,反之亦然,甚至可以发送到多个设备。它有点像聊天室,但不限于字符串。
如果这些设备不在同一个网络上,则需要通过 Adobe Cirrus 服务器(免费用于测试和非商业用途)或另一个 FMS 服务器(例如 Adobe 或 Amazon 托管服务,或您的自己的服务器)。一旦引入,它们通常通过 rtmfp 安全对等协议(protocol)直接相互通信,该协议(protocol)可以穿越几乎所有防火墙。在他们无法直接连接的极少数情况下,FMS 服务器可以中继消息。
关于actionscript-3 - 从 AIR 桌面客户端发送推送通知,无需中间件(例如 PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8927944/