Socket Programming provides the ability to implement real time analytic, instant messaging, binary streaming, and document collaboration. Socket.IO controls the connection transparently. Socket.IO is a custom real time transport protocol. Socket.IO needs the use of socket.IO libraries on both client and server side. It is also used to make real time apps feasible in every browser and mobile devices and its open source too.
What’s Socket?
A socket is an endpoint of a two way communication link between two different programs running on the network. We can simply say that socket.IO is the Node.js module for real-time exchange data between the client and server. So let’s take an example of traditional polling, the below image shows how data can be exchanged using socket.IO programming:
Here, in the example client periodically sent the request to check with server even though there is no change in data. So it might be possible that server has to handle a bulk of unnecessary request.
Here are some of the key features of Socket.IO:
- It is purely written in JavaScript on Client-Side which runs in the browser on Server-Side.
- It is totally open source.
- Real-time exchange data between server and client.
- Support a lot of browsers like Firefox, Chrome, Safari, IE.
- 3rd Party open source platform for Android, iOS, etc.
Socket.IO which is the JavaScript library for real time web applications has mainly two parts:
1. Client Side: Runs on Browser
2. Server Side: Runs on Server – Node.js
There is one-to-one communication as in web-socket; it allows broadcasting to multiple nodes. Primarily it uses a web-socket, but it can also be fallback to other methods like:
- Web Socket
- Flash Socket
- HTML File
- XHR Polling
- AJAX Long Polling
- JSONP Polling
The multiple clients send connection requests and server accepts the requests by creating a new socket for each with its local address and port. Thus, the socket can make connection and send or receive the data from socket.
Thus, we can say a socket is one of the most fundamental technologies of computer networking. Sockets allow applications to communicate using built in mechanism of hardware and operating system. Many of the apps from today’s most popular software packages including web browsers, peer to peer file sharing systems, and even more instant messaging applications rely on the concept of Sockets.
As we all know the famous messaging app that is the WhatsApp Messenger is also using the socket programming concept for free messaging or chatting. There is not only messaging application which uses socket programming but there are also many apps which are using it to send and receive the data from client and server like Grofers, Karigar, OLA and Uber. Uber’s concept is about the Driver and user communication like sending request for taxi, at other end driver will accept or decline request). In these apps users send requests for any service or product and server provides them the proper services and products in particular time period.
Key Takeaways
So At last we can say we will customize socket.io for our own purpose of app for faster client server communication then rest API calls.
Here is the technological demo about the real time chat or messaging application and its source code which can help you to know more about using Socket.io: http://socket.io/demos/chat
Keep reading for latest Programming demos and blog posts on the Blog of Logistic Infotech Pvt. Ltd.
Please read this article to understand Realtime Communication using iOS Socket io Client and Sails JS example and get Sample Demo Code.