👨💻Цикл событий JavaScript простым языком — [14:38]
Наверняка многие задумывались, как NodeJS способен обрабатывать такие серьёзные нагрузки, учитывая, что он работает всего в одном потоке. На самом деле, правда заключается в том, что большая часть времени, которую сервер тратит на обработку одного клиента, — это ожидание. Либо ожидание ответа от клиента, либо сама отправка запроса через сеть.
NodeJS умеет делать все эти операции ожидания неблокирующими. То есть, пока он ждёт завершения какого-то системного вызова или завершения операции с сетью, он может обрабатывать другие соединения и благодаря этому не проигрывать, а порой даже выигрывать серверы, написанные в пусть и многопоточном, но блокирующем стиле.
В этом видео вы узнаете, как это работает и почему это очень круто.
#js#nodejs
#go#docker#golang#media_streaming#remote_control#remote_desktop#self_hosted#virtual_browser#vue#webrtc
Neko is a self-hosted virtual browser that runs inside a Docker container and streams via WebRTC, letting you securely and privately access a full browser or desktop environment from anywhere. It supports multiple users at once, making it great for team collaboration, shared browsing, watch parties, and interactive presentations. You can run various browsers like Firefox, Chrome, or Tor, and even other Linux apps. Neko keeps your data safe by isolating the browser environment, avoids leaving traces on your device, and supports smooth video and audio streaming. This gives you flexible, secure, and private web access with easy sharing and real-time interaction.
https://github.com/m1k1o/neko
#cplusplus#c_plus_plus#cpp#datachannel#libdatachannel#libnice#p2p#peer_to_peer#peerconnection#rfc_8831#rfc_8834#rtcdatachannel#rtcpeerconnection#sctp#webrtc#webrtc_datachannel#webrtc_video#websocket
libdatachannel is a lightweight, easy-to-use C/C++ library that lets you add real-time peer-to-peer data, media, and WebSocket communication to your apps across many platforms like Linux, Windows, macOS, Android, and iOS. It simplifies WebRTC by providing a smaller, simpler alternative to Google's library, with compatibility for browsers like Firefox and Chrome. You can use it to connect native apps directly to web browsers with minimal dependencies, supporting secure connections via GnuTLS, Mbed TLS, or OpenSSL. It also supports compiling to WebAssembly for browser use, making it flexible for cross-platform real-time communication development[1][4]. This helps you build fast, efficient apps for video, audio, or data sharing without heavy libraries.
https://github.com/paullouisageneau/libdatachannel