我的一些 friend 正在设计一款游戏,我正在帮助他们实现游戏的后端服务器。游戏是用 Flash 编写的,我计划用 node.js 开发服务器,因为 (a) 这将是学习 node.js 的一个很酷的项目,并且 (b) 它很快,这对游戏很重要。
服务器的架构基于服务器和客户端之间发送的消息(有点像 Minecraft 的服务器协议(protocol))。到目前为止,我的消息格式是一个字节(数据包类型)、两个字节(消息长度)和那么多字节(消息数据,它是键值对的映射)。问题是,我真的不想开发自己的序列化格式(因为虽然我可能可以,但与使用现有解决方案相比,实现它会很痛苦)。
不幸的是,我在寻找合适的消息数据序列化格式候选者时遇到了问题。
- ActionScript 自己的远程处理格式可能有用,但我不太喜欢它。
- JSON 在 node.js(很明显)和 ActionScript 中都有支持,但它也是文本的,我更喜欢二进制以提高速度。
- MessagePack 看起来是个不错的选择,但我找不到 ActionScript 实现。 (Google Code 上有一个名为 as3-msgpack 的程序,但我遇到奇怪的错误并且无法访问它。)
- BSON 有一个 ActionScript 实现,但除了他们的 MongoDB 库之外不支持 node.js(我打算使用 Redis)。
那么,任何人都可以提供我可能错过的任何其他序列化格式吗?还是我应该坚持使用其中之一(或自己动手)?
最佳答案
这不是 HTTP 支持压缩内容的原因吗?只需在发送内容时使用 JSON 和 gzip 即可。 gzip 压缩所花费的时间因传输延迟的减少而得到恢复。
有关 gzip with Actionscript 的更多信息,请查看这篇文章.在 node.js 上,我认为 gzip-compress相当受欢迎。
关于actionscript-3 - node.js 和 ActionScript 通用的序列化格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5073323/