Flash客户端和Java服务器之间的持久连接

时间:2009-08-19 15:32:48

标签: java flash multiplayer persistent-connection

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

我知道XMLSocket - 这是唯一的出路吗? 有什么建议吗?

谢谢!

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

除了在xml中发送内容之外,您还可以调查是否可以使用AMF发送数据,可能更小(如更少位)。

答案 2 :(得分:0)

确保服务器上有可用的安全策略文件。请查看此SO question/answer以获取更多信息。

答案 3 :(得分:0)

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

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

这只是10个字节。

Java支持与DataStreams或ByteBuffers类似的原始读/写函数。

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