最近公司想上个消息推送系统,网上搜了很多,因公司主要产品是Delphi,我选择了开源的RabbitMQ,Erlang语言开发,天生并行。
代码下载地址:delphistomp下载地址
windows上部署
1,首先到RabbitMQ官网下载win64位安装程序,同时下载Erlang语言环境安装
2,运行RabbitMQ,打开Stomp协议插件,mqtt协议插件
3,添加管理用户,guest用户只能本机连接
4,下载开源的Stomp协议Delphi客户端源码,编译Demo,delphi2010以上Unicode版本的可以用indy模式,D7,D2007要换种方式
5.消息路由,Change模式,消息广播,推送给所有订阅频道的客户端
6,临时消息队列,保存在内存中,重启RabbitMq后,队列清空
7,永久消息队列,消息不被消费,则一直存在,保存在内存,磁盘,重启不丢失
8,ack消息确认,消息确认后,不管是临时还是永久消息将被删除, 当前消费者不确认,则下次推送给下一个消费者,如同时多个消费者在线,消息将排队,一个个消息推送给消费者,不是连续的,是第一条消息给第一个消费者,第二条消息给第二个消费者,第三条消息给第三个消费者,到第N个,如果只有一个消费者,则将消息全部发给他,注意:消息只能确认一次,如果想让消息一次性推送给多个消费者,则伪消费者发送Nack,RabbitMq收到后,推送给下一个消费者,等到真正的消费者时,发ACk,消息结束。
9.发送消息分永久和临时消息,永久消息必须队列也是耐用的,才会保存到磁盘,消息消费后将被删除
Stomp协议demo已看的差不多,但领导要用mqtt协议,只能再看mqtt,烦躁