我目前正在开发一个嵌入Flash游戏的项目,它使用Smartfoxserver进行Flash通信。这种沟通主要只是同步两个玩家之间的光标和物体移动。
由于我不是一个闪存的人,而是一个红宝石程序员,我很好奇:闪存为这种时间敏感的数据交换提供了什么样的通信选项?我正在考虑编写一个基于ruby-eventmachine的通信服务器,以最大限度地减少对外部程序的依赖。这甚至是可行的吗?
答案 0 :(得分:1)
虽然我没有给你一个完整的答案,因为我自己没有完成,但我发现自己几乎和你一样。
我目前的方法是让我的ruby服务器基本上只是一个处理客户端之间所有通信的套接字服务器,但是我个人打算将任何逻辑保留在服务器之外(除非我遇到改变的原因)那个想法)。
如果您还没有在ruby中进行任何套接字编程,我建议将以下内容作为跳转点。这是关于Ruby Socket编程的IBM文档,并讨论了异步数据的方法: Ruby Sockets - IBM
我认为它最终归结为性能。我目前在日常工作中使用我的ruby服务器版本,但数据不必以时间敏感的方式更新。
答案 1 :(得分:1)
您可以在(几乎?)任何支持套接字的语言中创建服务器,并使用该语言管理您的客户端。
从闪光灯的角度来看,你可以使用红宝石,但我不知道红宝石适合这个任务......我的意思是,你可以制作一个PHP socket server,但它不会承受很大的压力。 / p>
SmartFoxServer的替代方案可以是用Java编写的开源Red5。
如果您想了解处理p2p时内置闪存的功能: Flash p2p: Everett Church 在Flash Player 10中,adobe添加了Live媒体(RTMFP)支持 - 媒体始终来自发布同行。在Flash Player 10.1 beta中,他们引入了组和应用程序级多播。
但是,您仍然需要一个服务器(Stratus)来处理介绍和管理活动连接。 (另外,我认为它适用于Flash视频,Stratus不支持共享对象或脚本。因此,对于Stratus,您的应用程序将是客户端彼此直接通信。)
编辑: 在重新阅读你的问题和Beanish提供的答案后,我认为我第一次提出错误的问题。所以我只是重新写了我的答案......