我需要一台服务器来发送和接收来自运行我正在编写的多人游戏的Android客户端的XMPP消息。我之所以选择XMPP是因为我不想长时间轮询,而套接字可能会成为蜂窝网络的问题(运营商可能阻止它们)。
我一直在看OpenFire,虽然听起来很神奇,我不需要管理面板语音聊天,聊天室等等。它似乎非常重量级,面向企业的聊天解决方案,我只需要的是匹配球员并将他们的动作传递到对方,最后记录得分。是否有一个简化的OpenFire版本,所以我可以注册一个组件,它将服务所有请求?关于使用openfire进行适应,我找不到添加自定义组件来执行类似任务的明确示例。
我需要的是一个库或现有的简单服务器,我可以运行并注册我的自定义消息监听器。我只需要能够为任何进入的请求提供服务并做出适当的响应。我希望我不必编写线程管理,因为这个问题对于典型的聊天服务器来说很常见,但我确实需要编写代码来解释和响应发送的消息。
我希望这是有道理的,任何编写过这样一段服务器代码的人都会喜欢这个例子。对于那些没有尝试过,但想知道如何开始的人,请加入!越详细越好。
提前致谢,
GAV株系
答案 0 :(得分:7)
您几乎可以使用任何XMPP服务器;我知道Openfire可以使用,或者我最近也使用了Prosody,它非常轻巧,易于安装(在Linux上)。
您想要的是使用XMPP component protocol与您的XMPP服务器通信(从而可以覆盖您的用户)的独立组件。这就是游戏情报的所在。
有关详细信息,请参阅我之前对非常相似问题的回答:
XMPP C# Interaction
查找信息的另一个好地方是由Jack Moffitt编写的任何内容,他们创建了chesspark.com(因为国际象棋购买了所以不可用) - 一个匹配国际象棋用户和使用XMPP控制游戏的网站。 / p>
首先看这篇博客文章:
http://metajack.im/2008/11/21/chesspark_design_details_part_1_why_xmpp/
答案 1 :(得分:4)
答案 2 :(得分:1)
如果OpenFire(或其他XMPP服务器)支持pubsub,您应该能够完成此任务。不确定您需求的具体细节,但我认为Personal Eventing Protocol或其超集PubSub应该能够处理您的用例。 OpenFire确实支持这两种协议。
如果这些不支持您的用例,则custom plugin非常容易编写。
对于重量级或轻量级,除非你有一些特别小的环境来运行服务器,我怀疑它会很重要。您根本不会使用现有的许多功能。
我已经使用XMPP pubsub为客户提供了彼此之间的通信,因此用户可以获得组内同事正在进行的实时更新。