Web socket beginner tutorialsWebSocket is a protocol with two way HTTP connection between client and server. Communication happened over a single socket layer,
Traditional client-server communication web applicationsNormal Web applications, the client initiates the request and server serve the response. Here communication is over HTTP protocol, Once the content is served on the page, no updated content will be served until the page is refreshed.
Think of following use cases where real-time communication required in Facebook Chat, Live Cricket scores, Stock Quotes News feed Online games Real-time applications communications For example, Now think of live Cricket based score websites/ Facebook chat sites, the data displayed on live cricket score is very frequent. The live score once displayed might be outdated. Continues refresh is required to get the newly updated score. This might be a poor user experience For real-time web apps communication, Traditional client-server communication is not used as this has a poor user experience.
Solutions to this problem are having two options
Polling- alternative to WebSocket1. The client sends a request to the server, HTTP connection is opened
2. The server serves the response over HTTP connection and server closes this connection
3. step1 and step2 happen at frequent intervals for getting update content at frequent intervals for every request, HTTP connection is created Once data served, the connection will be closed.
Polling disadvantages1. More bandwidth is required if there is no content update
2. Connection open/close is an expensive operation for every request during interval time.
Long polling alternative to WebSocket1. This method is asynchronous polling
2. The server keeps the connection open until the configured period timeout is reached
AdvantagesWhen data is huge, it becomes polling.
|Oneway communication - Client sends a request to the server, the server sends the responses||Two-way communication ie duplex channel|
|The server can not push to client||Core feature and Server push is possible|
|Cache inbuilt support||Cache is not possible|
|All clients and browsers support there||Only Modern browsers supports|
|All technologies support available||Only Modern languages support available|
WebSocket support in all popular browsers. Following libraries have support for implementing WebSocket implementation