(a) and (b) options are seems better.In fact you can use RabbitMQ binding in WCF.It seems your communication data is central DB . RabbitMQ is using AMQP protocol while WCF's Duplex binding is using MSMQ. RabbitMQ is from third party but stable. WCF has a good history of stability with some new concept of WCF LOB Adapters. Both are scalable and efficient.Both are supporting publisher/subscriber pattern.
But If you are writing first time WCF duplex then it can very complex in development & deployement, As WCF is more about configuration. I would like to suggest you SignalR which is built on top of winsock and related communication channels.SignalR can be deployed on ASP.Net & MVC Site. Currently I am building a massive communication system using SignalR.
Just look at ZeroMQ .It has better performance than RabbitMQ.Use NetMQ a 100% C# Port of ZeroMQ.
Hope it helps