xmpp java 服务器_好的XMPP Java库服务器端?

我希望在Java中实现一个简单的XMPP服务器。

我需要的是一个库,可以解析和理解来自客户端的xmpp请求。我看过Smack(下面提到)和JSO。 Smack似乎只是客户端,虽然它可能有助于解析数据包,但它不知道如何响应客户端。 JSO维护它看起来很老。唯一有希望的途径是拉开Openfire,这是一个整个商业(OSS)XMPP服务器。

我只是希望在Netty或Mina的顶部几行代码,所以我可以开始处理一些消息线。

Joe –

那么,我想要做的答案有点长 – 我会尽量保持短。

有两件事情,只是松散相关:

1)我想写一个XMPP服务器,因为我想为两个客户端编写自定义协议进行通信。基本上我在想一个联网的iPhone应用程序 – 但我不想依赖低级二进制协议,因为使用像XMPP这样的应用程序可以“成长”非常快,从本地的WiFi应用程序到基于互联网的… …

交换的msgs应该是相对低的延迟,所以严格来说,二进制协议将是最好的,但我认为可能值得探索如果XMPP没有引入太多的开销,使我可以使用它,然后收获它的可扩展性的好处和柔性。

2)我为Terracotta工作 – 所以我有这个疯狂的弯曲聚集一切。一旦我开始考虑编写一些自定义服务器代码,我想我想集群它。 Terracotta使扩展Java POJOs微不足道,所以我的想法是构建一个超级简单的XMPP服务器作为Terracotta的示范应用程序。基本上每个用户都将通过TCP连接连接到服务器,这会将用户注册到hashmap中。每个用户都有一个LinkedBlockingQueue,其中一个侦听器线程从队列中取消息。然后,想要向任何其他用户(例如,任何旧的聊天应用)发送消息的任何连接的用户仅仅通过该连接向该用户发出XMPP消息(照常)。服务器选择它,在映射中查找相应的用户对象,并将消息放入队列。由于队列是集群的,无论目标用户连接到同一物理服务器还是不同的物理服务器,消息都会传递,并且正在侦听的线程会选择它并将其发送回目标用户的tcp连接。

所以 – 不要太短的总结恐怕。但这就是我想做的。我想我可以为Openfire写一个插件来完成#1,但我认为它需要很多管道,所以很难做#2(特别是因为我希望一个非常少量的代码,可以适应一个简单的10-20kb Maven项目)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值