I planned to work on a chat custom widget based on pull. To reduce response time (and to minimize the amount of request) we want to use long-running HTTP calls. So the request isn't replied from the server as long as there's no message for the caller. This reduces server load and clients gets their messages in milliseconds.. The planning is to make it available in the App store within a month (little bit depending on the resources ;)).
In our application we have a chat function that is using pull, but the nice thing is that we have a response time currently set to 2 secs and all the functionality is Mendix, no java or other servers needed.
Chat should be based on push, not pull. You want snappy responses (that is, with a delay of < 1s). XMPP is your weapon of choice. For that, you need to set up an XMPP server which supports BOSH (http://xmpp.org/extensions/xep-0124.html). Then you need some custom widgets that communicate with the XMPP server. Difficult, but possible. Mendix would certainly be interested if you manage it though.