Given the fact that you want to implement duplex communication, and given the fact that WCF is a framework that allows you to use multiple different protocols, I would recommend WCF out of the choices you present. In order to get an idea on how to implement duplex communications in WCF, you should have a read of
this[
^] article.