I'd add that sometimes UDP more reliable in some configuration eg. when a client is behind a router connecting to outer world. But the source of my question is heterogeneity of clients in my specific client/server configuration: Android App, Delphi 7 App, Web browser. It's kind of monitoring system having various UIs watching changes. Of course it's possible to implement 3 different approaches of data exchange but I'd like to use uniform. So my concern is still one of 3 options: HTTP polling, Web sockets or mix of UDP/HTTP. Obviously, I'd never use Delphi 7 as a backend but it's a requirement of the legacy system.