【发布时间】:2010-10-10 10:19:52
【问题描述】:
我正在为非实时多人聊天/游戏系统开发开源跨平台平台。像纸牌游戏、棋盘游戏、回合制游戏等。服务器是在服务器端生成的(不是从用户计算机生成的)。客户端有这些游戏模块或下载游戏模块然后运行它们。
我得出的结论是,最好的协议是“类似 IRC”的。这样就有了聊天和游戏的渠道。
比如有频道
- 大堂
- Lobby.English
- Lobby.芬兰语
- Lobby.Mygame - 聊天特定游戏
- Lobby.Mygame.English
- Game.Server.Announcements - 创建新服务器时,服务器会在此处大声喊叫。所有的客户都在听这个。您可以获取所有正在运行的游戏服务器的列表。
- Game.3636534.chat - 特殊游戏聊天
- Game.3636534.game - 用户在此处发送 Buy X 等命令,服务器会响应这些命令
我研究过的一些东西
- XMLRPC 不好,因为您必须每隔几秒轮询一次新数据
- ICE - 相当不错,但应该对 RPC 更友好一些
- ActiveMQ/RabbitMQ 和它的发布者/消费者系统是我正在寻找的东西。问题是缺少良好的用户 ACL。所以基本上每个人都可以“去”任何地方,将任何垃圾发送到主 AMQ 服务器。
为此受支持的编程语言至少应为 C#、Java 和 Python。加密支持也应该在那里。当然是免费的。
【问题讨论】:
标签: asynchronous networking tcp cross-platform