2009-08-19 141 views
1

我是Flash新手。 我打算在Flash中创建一个游戏客户端(在浏览器中运行),需要与用Java编写的服务器交谈。客户端和服务器之间的连接需要持久。Flash客户端和Java服务器之间的持续连接

我知道XMLSocket - 是唯一的方法吗? 有什么建议吗?

谢谢!

回答

1

有一个Socket类,它允许您在与服务器交谈时使用真实的TCP。 缺点 - 你必须自己实现协议(在大多数情况下实现HTTP客户端,也许有人已经这样做了)

+0

据我所知,Socket类在AS3中可用,它是Flash Player 9和更高版本 - 关于市场细分市场有多大的想法可以使用AS3编写的东西? – byteclub 2009-08-19 16:07:45

+0

在这里回答我自己的评论,对不起:查看adobe.com上的统计数据,看起来像flash player 9是非常普遍的,高达98.8%的安装使用它。 – byteclub 2009-08-19 16:22:15

+0

是的去as3 - 除非你唯一的编程经验到现在为止javascript as2对于程序员来说并不是很有趣,而as3的工具则更好。 (Flash设计师可能会争辩) – 2009-08-20 13:16:10

0

你是不是要创建游戏,倾斜和乐趣?否则,我会建议使用现有的游戏服务器,或至少调查该选项的优点和缺点。

我在几个项目中使用SmartfoxServer(http://www.smartfoxserver.com),它并不完美,但它需要很多的问题远(如果你愿意,你可以写在Java扩展)。我认为ElectroServer http://www.electro-server.com/是类似的,你也可以看看开源服务器的Red5 http://osflash.org/red5

除了在XML送的东西,你也可以调查,如果你可以使用AMF发送数据时,它可能较小(如更少位)。

+0

它是现有iPhone多人游戏的一个端口。服务器已经在那里。试图弄清楚我们是否需要一个用于Flash实现的不同前端,或者是否可以简单地重新实现和重用现有协议(这可能会节省时间) – byteclub 2009-08-19 16:09:41

+0

闪存中的套接字是棘手的(主要是检测错误部分), xmlsocket可能是最好的选择。注意限制性防火墙后面的人,如果你想支持它们,你可能需要一个轮询http后备。 – 2009-08-20 13:12:37

0

确保您的服务器上有可用的安全策略文件。看看这个SO question/answer了解更多信息。

0

我一直在试验Flash和Java之间的Socket通信。 Socket over XMLSocket的一个优点是带宽,因为您可以编写二进制数据。因此,举例来说,您可以发送单个实体的位置:

writeShort(entity.id); writeFloat(entity.x); writeFloat(entity.y); 

这只是10个字节。

Java支持与DataStream或ByteBuffers相似的原始读/写功能。

事实上,事物的服务器端比Flash端更复杂,因为您必须在旧的io Java套接字和新的io方法之间进行选择。新的io方法有更好的性能,但更复杂,显然充满了陷阱。

相关问题