I have resolved my own issue. It turns out my cookies were not being set correctly on my application - this meant that when I logged in via the Platform UI the cookies were being set for my browser and these same cookies were being used by my websocket (explaining why it worked for one user consistently and others sporadically).
I have fixed it by switching to using the token method on websockets.