Il polling in questo caso (chat) generalmente è il problema minore, come si dice. Se proprio si vuole evitarlo ci sono sicuramente varie tecniche. Una quella dell'uso del recente standard websocket ma deve esserci il supporto nel browser e anche lato application-server/webapp.
Cosa intendi per "listener" in questo contesto?
Consiglierei di "dimenticare" applet o plugin. Le applet poi implicano altre questioni sulla security (specialmente con i recenti runtime Java).