ActiveMQ是一个JMS的消息队列的一种实现,在高并发的服务端用的较多,据称能够支持每秒20000的并发数据访问。
他实现了JMS标准的基本操作,如点对点的消息收发,发布/订阅消息等等,并且支持了许多协议,如Openwire、REST、Stomp、XMPP等等,因此支持了多语言和多平台,它自带的Java库实现了openwire和stomp的访问,但是如要手机端(如Android)对JMS的支持很差(或者还不支持?),因此对于手机端来说操作ActiveMQ不得不使用XMPP或者REST。
XMPP我尝试过,使用smack,smack是一个XMPP的Java库,原本是用来做IM开发的(作为同一系列的spark是XMPP的IM客户端,基于smack,Openfire是XMPP的服务器,因此spark+openfire能够搭建一个IM系统,同样ActiveMQ也可以作为XMPP的服务器,ActiveMQ+spark也可以搭建一个IM系统。)使用smack能够连接ActiveMQ,并建立一个Topic,向Topic队列发送消息,但是一直没有找到如何建立Queue,生产消息和消费消息。有人还特意为Android写了个asmack。