Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Flex+;Air应用程序到数据库?_Php_Flash_Apache Flex_Actionscript_Livecycle - Fatal编程技术网

Php Flex+;Air应用程序到数据库?

Php Flex+;Air应用程序到数据库?,php,flash,apache-flex,actionscript,livecycle,Php,Flash,Apache Flex,Actionscript,Livecycle,我正在尝试使用Flex4.5创建Air应用程序。该应用程序与LiveCyle协作服务交互,以支持桌面上的屏幕共享和网络摄像头聊天 我目前正在寻找数据库(不是像SQLite那样的本地数据库)来存储和加载Facebook墙大小的数据。也就是说,许多用户可以在短时间内存储和加载数据库(同步问题)。另外,我将在Mac mini Snow Leopard服务器中设置数据库 我提出了以下三种解决方案: 1) MySQL使用AMFPHP-通过服务器端语言访问MySQL 2) 通过asSQL库访问MySQL-直

我正在尝试使用Flex4.5创建Air应用程序。该应用程序与LiveCyle协作服务交互,以支持桌面上的屏幕共享和网络摄像头聊天

我目前正在寻找数据库(不是像SQLite那样的本地数据库)来存储和加载Facebook墙大小的数据。也就是说,许多用户可以在短时间内存储和加载数据库(同步问题)。另外,我将在Mac mini Snow Leopard服务器中设置数据库

我提出了以下三种解决方案:

1) MySQL使用AMFPHP-通过服务器端语言访问MySQL

2) 通过asSQL库访问MySQL-直接访问MySQL,但安全性差

3) BlazeDS/LiveCycleES和ColdFusion-JavaEE后端,但是ColdFusion是商业化的,并且适合大型项目


哪一个是中小型项目的最佳解决方案?或者你能推荐其他解决方案吗?谢谢。

Coldfusion适用于大型项目。除非你有一个不适合它的预算,否则它是否商业化并不重要。但是,如果是这样的话,那么LiveCycleES要贵得多,所以如果成本是一个问题,那么您可能不得不使用BlazeDS

至于脸谱网的“墙状”特性有几件事你必须考虑。一堵墙意味着你有一些软的社交图存储。使用关系数据库在大规模上实现图形网络并不容易。我建议考虑像MongoDB、Cassandra这样的NoSQL存储。与使用数据库进行分片相比,这些选项的扩展工作量要小得多,因为数据库需要大量的软件工程才能高效地存储所有内容

如果您想在两个客户端之间共享屏幕,您将需要使用PHPAMF和BlazeDS解决一些问题。这两个选项都不支持异步消息传递,因此它几乎没有启动程序。LiveCycle ES支持这种类型的东西,而Blaze/DS过去没有。您可能需要仔细检查Blaze/DS的功能,看看最近是否有变化。您可以查看的一个选项是Red5,它支持RTMP/E


我会选择Java/BlazeDS/MySQL作为价格(免费)和可靠性(使用BlazeDS的人比使用AMFPHP的人多)的最佳组合。NoSQL听起来似乎不错,但从开发角度来看,我知道所有真正的项目都很昂贵(由4-8名开发人员组成的团队只在持久性方面工作)。像MySQL这样的关系数据库可以很好地处理您的场景。我已经使用它配置了一个处理400reqs/秒的系统,没有切分


另一方面,将您的技能与选择的堆栈相匹配很重要,您的时间应该花在功能上,而不是学习新语言或复杂框架上。如果您比Java更了解PHP,请选择AMFPHP而不是BlazeDS。

非常感谢您的回答!实际上,与LCC的交互(屏幕共享)和对数据库的访问是相互独立的。很抱歉给你带来了困惑。AIR应用程序只会将文件共享(通过Dropbox)日志记录到数据库中,如创建日期、上次编辑用户等。另外,其他用户可以在上面留下评论,类似于Facebook墙(每条帖子都与我的AiR应用程序中的文件相对应)。您仍然建议不要使用AMFPHP+MySQL吗?谢谢我不会将它们分开,因为我不会为这些访问构建两个单独的服务器。我会有一个AIR应用程序来谈论LCC/Blazed的一切。然后,根据控制器上调用的方法,它可以选择通过RTMP进行屏幕共享,或者与MYSQL、Cassandra或您选择的任何持久性存储进行对话。但是,使用一台服务器可以简化构建、测试、部署,更重要的是可以扩展(水平)。您的服务器可以处理它。我会跳过AMFPHP,因为它只提供序列化。剩下的就交给你来构建了,RTMP并不容易。当你进入1M区域时,社交图不能很好地存储到MySQL/Relational中。这就是为什么我认为您会发现NoSQL选项更简单。您可以将MySQL/Relational推到更高的级别,但必须将它们切分。而且,这需要投入大量的工程成本。Cassandra可以水平扩展,而无需专门构建数据。但是,如果您使用一台能够实现所有功能的服务器,那么使用您的LCD/BlazeDS/Red5服务器水平扩展就很容易了。Java具有比PHP更高的学习能力,所以我假设如果您正在研究它,您就会知道它。所以我认为康奈尔的建议在这方面很好。意识到如果你可以保持在一定的大小,那么mysql将为你工作,但要意识到你可能被困在一定的规模之下。