WebSocket is a communication protocol designed for exchanging messages between a browser and a server through a permanent connection in real time.
Data on web sockets is transmitted in both directions in the form of “packets", and this happens without disconnecting and additional HTTP requests. On web sockets, you can transfer both text and binary data. The protocol has good support by modern browsers and works without restrictions related to cross-domain requests.
Web sockets enable closer interaction between the browser and the web application, which allows you to more efficiently work with interactive content and create real-time applications.
As for backend development, almost all modern frameworks support working with web sockets, however , interpreted languages (PHP, Ruby, Python) are not very suitable for implementing applications with a fairly high load, since they lack the performance to work with a large number of client connections .
We recommend solutions in Elixir / Erlang (Phoenix framework) or in the Go programming language (Gorilla WebSocket library), since the implementation of interaction on web sockets in these languages confidently withstands a huge number of connections even on one server.