Okay, I could probably answer this if I read all the old WebSockets posts, but how can you have people communicate without a server?
So there are servers, you just don't run any yourself and it is all abstracted away by their API.
What they did, in this case, is mock the WebSocket interface (so that they didn't need to rewrite the whole original app) and make it use the PubNub API internally. See https://github.com/pubnub/pubnub-xkcd/blob/master/websocket....