actionscript-3 - 从 AIR 桌面客户端发送推送通知,无需中间件(例如 PHP)

标签 actionscript-3 sockets air openssl apple-push-notifications

使用此 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,反之亦然,甚至可以发送到多个设备。它有点像聊天室,但不限于字符串。

如果这些设备不在同一个网络上,则需要通过 Adob​​e Cirrus 服务器(免费用于测试和非商业用途)或另一个 FMS 服务器(例如 Adob​​e 或 Amazon 托管服务,或您的自己的服务器)。一旦引入,它们通常通过 rtmfp 安全对等协议(protocol)直接相互通信,该协议(protocol)可以穿越几乎所有防火墙。在他们无法直接连接的极少数情况下,FMS 服务器可以中继消息。

关于actionscript-3 - 从 AIR 桌面客户端发送推送通知,无需中间件(例如 PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8927944/

相关文章:

javascript - Adobe AIR(html/javascript): navigateToUrl's window parameter not working

javascript - 需要函数等待事件处理程序完成后再执行下一个函数

android - 在 Android 的 Flash 中浏览多张照片

apache-flex - 用于移动设备的 MXML 和 ActionScript 之间的真正区别是什么?

performance - 在 as3 中访问视频像素的最快方法是什么?

具有单写入器、多个读取器的 Linux IPC

actionscript-3 - 从 as3 中的输入文本中删除逗号

ios - 简单的 posix 服务器无法从循环中设置 UILabel

java - 在 Java 中接收时 TCP 套接字挂起

javascript - 使用 Javascript 的 Twitter OAuth