For some reason, you've already settled on JSF, so it's out of question there's no other framework than BootsFaces.
OK, I'm a BootsFaces committer. I'm told that BootsFaces is a good choice, but of course, PrimeFaces - or even plain JSF - are good alternatives.
Concerning WebSockets, that's a hot trace. At this point, I guess you're in JavaScript country. Opening a WebSocket in JavaScript is simple. So is listening to it. To integrate with the JSF framework, you can use <b:remoteCommand>
(BootsFaces) or <p:remoteCommand>
(PrimeFaces). There's also an OmniFaces alternative: <o:commandScript />
.
Hope that helps. Your question is so broad there are zillions of answers to it. Maybe I've helped you to pose better question :).
That said, I wonder why you've settled on JSF. If I were to chose the technology I liked best, I'd probably chose Vue.js, React.js or Angular 6+, in that order.