Signaling between client end points has always been an important facet for most interactive web applications. The use cases range from text chatting to multiplayer games to driving a robot remotely. In the world of HTML5, most developers establish signaling through websockets, long polling and server side events. However with the advent of WebRTC, data channels joined the ranks and the question posed by many developers is “Where do data channels fit in the equation?”
Data Channels provide a way to send binary / text data to another peer over the browser. The data channel api is very similar to web sockets when it comes to sending different types of data. It works peer to peer without the need of a centralized server or an additional hop in most cases.
At Tokbox, we believe in providing a high quality video experience by constantly upgrading our server infrastructure. In that interest, Tokbox built it’s lightweight, scalable, raw socket based messaging framework called Rumor.
One might wonder why OpenTok needs its own messaging infrastructure, being a video streaming API. The concept of an OpenTok session is similar to that of people in a room (session) talking to each other (publisher and subscribers). When someone new enters the room, those already there acknowledge their presence. Similarly, when a new client comes into an OpenTok session, the current participants are unaware of that client’s presence until they’re notified by the server that someone else has joined. Along the same lines, any actions performed by that client (such as publishing their camera) need to be relayed via the server to all the other participants on that session. Not only is it important to be assured everyone gets these messages, but it also needs to happen in a timely manner. This is where our scalable messaging architecture, Rumor, comes into place.