适用于非实时游戏的基于异步TCP的协议?

时间:2009-02-27 20:02:52

标签: asynchronous networking tcp cross-platform

我正在为非实时多人聊天/游戏系统开发开源跨平台平台。像纸牌游戏,棋盘游戏,回合制等。服务器是服务器端产生的(不是来自用户计算机)。客户有这些游戏模块或下载游戏模块,然后运行它们。

我得出的结论是,最佳协议是“类似IRC”。因此,有聊天和游戏的渠道。

例如,有频道

  • 大厅
  • Lobby.English
  • Lobby.Finnish
  • Lobby.Mygame - 为某个特定游戏聊天
  • Lobby.Mygame.English
  • Game.Server.Announcements - 创建新服务器时,服务器在这里大喊大叫。所有客户都在听这个。您可以获取正在运行的所有游戏服务器的列表。
  • Game.3636534.chat - Spesific game chat
  • Game.3636534.game - 用户在这里发送购买X等命令,服务器响应

我调查了一些东西

  • XMLRPC不好,因为你必须每隔几秒轮询一次新数据
  • ICE - 相当不错,但应该更加友好的RPC
  • ActiveMQ / RabbitMQ和它的发布者/消费者系统是我正在寻找的东西。问题是缺少良好的用户ACL。所以基本上每个人都可以“到处”并将任何垃圾发送到主AMQ服务器。

支持的编程语言至少应该是C#,Java和Python。加密支持也应该存在。当然是免费的。

1 个答案:

答案 0 :(得分:2)

您应该查看XMPP,它是异步消息传递的开放标准。它支持加密,防火墙遍历等等。服务器和库可用于许多很多平台,包括你提到的平台。

指向实施和信息的链接:http://xmpp.org/