compress the message content yourself.
I considered that option, but in my case the payload is very small, almost all of the message size is the overhead, so it wouldn't help.
does jboss have a jms provider that compresses ?
Are you saying that the messages are small but you are sending many of them? You could probably create some sort of compressed TCP/IP tunnel for tranmission and direct JMS traffic through it. I don't know how much % less bandwidth this would be.
If JMS is still too much overhead, I suggest using a simple socket link. Have the server read from a simple socket, generate the JMS message itself and enqueue on itself. For sever -> client, you can create a MDB which reads from JMS and sends back data over this same link.