So this is very basic and Gatling has all that.
At the moment, Gatling has probably the best WebSocket support out there, amongst load test tools.
AFAIK, it's the only one that can mix regular HTTP and WebSockets, and provide a way to reconciliate state (data/events from multiple websockets and regular HTTP/Ajax running concurrently).
Still, our WebSocket API is in its first version, and we're planning on improving things for Gatling 2.1.
For example, you can listen to a WebSocket for a given condition until it completes (like listener for a given message from the server), but you can set up only one condition at a time.
Hope I'm being clear.
Then, If your going with the Typesafe stack, and maybe Scala, I think Gatling will perfectly fit in your toolbox.
Cheers,
Stéphane