【发布时间】:2011-03-01 12:44:52
【问题描述】:
(新手提醒)
我需要为一个课程项目编写多方通信服务,我正在考虑使用 XMPP。
服务需要以下消息语义:
1) 服务器将提供注册和注销地址的方法,例如somenode@myservice.com/SomeResource。 (现在我将手动完成)。
2) 服务器将提供一种将传入消息从somenode@myservice.com/SomeResource 转发到someothernode@myservice.com/someOtherResource 的方法,假设后者已注册,并提供一种删除此转发的方法。 (现在我将手动完成)。
3) 匿名客户端可以向somenode@myservice.com/someresource 发送消息(仅限单向流量)。如果有任何转发设置,消息将被转发。最后,如果地址为somenode@myservice.com/someresource 已注册,则消息将被存储以供以后发送(如果检索客户端在线,则立即发送 - 见下文)。如果没有转发和注销,消息将被静默丢弃。
4) 客户端可以从注册地址连接和检索消息。验证客户端的确切方法(例如密码?)尚未确定。
- 最后,我想添加对客户端从 Web 浏览器连接的支持,以便他们可以自己注册/取消注册和设置/删除转发。
因此,服务器将不得不做一些非标准的切换。我需要为此实施 XMPP 服务器吗?我想其中一些(或全部?)也可以使用 XMPP 客户端机器人来完成
【问题讨论】:
-
更新:两个建议都很好。在对 Smack 和 susmack 进行了大量试验后,我决定编写自己的自定义 Java 服务器是设置尽快运行的原型的最简单方法。我将研究 ActiveMQ。我对 Java 还很陌生,所以征求其他关于入门的建议。我的目标是编写最少的代码,并在最短的时间内使原型质量相当不错。 Pubsub 完成了我需要的部分工作,但我可能需要修改现有服务器才能获得我需要的内容。具体来说,我需要匿名订阅者和匿名发布者。