I have no ambition to present you with all the systems dedicated to data exchange between IoT devices. I will present only some of the methods that I used in the presented projects. In this and the next chapters you will find explanations on how to develop web applications based on various communication methods. I have also prepared the appropriate server services for your applications. This ready server-side software will provide you with access to properly prepared internet databases located on my server. You will also be able to use very simple APIs that I have developed for you. API is the acronym for Application Programming Interface. We are not going to discuss the details now but the API is a software intermediary that allows two applications to talk to each other. Once you know my API, your applications will be able to communicate with mine to use the services of my server (there is a separate section about APIs here). I want to emphasize that this presentation will not teach you how web servers process service requests. Maybe someday I will prepare a special presentation about data processing on the server side.
It is the simplest method of communication in which clients poll servers and request data from them.
The Long polling mechanism is a modification of the polling technique in order to independently send (push) data to the client from the server side.
The long polling technuque is a substitute of real-time communication.
A technique where a web client automatically gets updates from a server via HTTP connection. Data updates come without asking servers if they have any new information.
The SSE technique is a method of one-way real-time communication.
A net communication protocol, providing a full-duplex communication channel over a single TCP connection.
The Websockets is the method for two-way communication in real-time.
The MQTT protocol is especially developed for communication with remote devices where tiny data portions are transferred.
The WebRTC is open project developed for direct real-time communication between remote devices.