EuroScope Plugin · WebSocket API

EuroScope Data Bridge

A plugin DLL for the EuroScope ATC simulator: it starts a local WebSocket server and exposes live radar, flight plan and controller data as JSON — with subscription-based push and on-demand query/modification.

latest C++17 Win32 · x86 MIT
ws://127.0.0.1:48521Local WebSocket endpoint
13Push event types
55Requests & actions
64Max concurrent clients

01 · About

What is Data Bridge?

EuroScope Data Bridge is a plugin DLL that runs inside EuroScope. Once loaded it automatically starts a WebSocket server on the local 127.0.0.1:48521. External programs (web pages, scripts, data-analysis tools) can subscribe to events such as runway activity changes, radar position updates and flight plan changes, or actively query and modify EuroScope data. All communication uses JSON text — a simple protocol with no third-party runtime dependencies.

ConnectionWebSocket, listening on 127.0.0.1 (loopback only)
ProtocolJSON text messages: request / response / push events
ThreadingEach request runs on its own async worker thread; the IO thread never blocks
Backpressure32 MB per-client send queue cap guards against unbounded memory growth

02 · Architecture

Architecture

The plugin runs as a DLL inside the EuroScope process: it collects data through EuroScope SDK callbacks and pushes it to external clients through the built-in WebSocket server.

EuroScope (main thread)

DataBridgePlugin
ES Callbacks · Per-request workers
FullSnapshot

External clients

Web pages / scripts / data tools
JSON Push Events
Request / Response

03 · Features

Key features

PUSH / 01

Subscription push

13 real-time event types — radar updates, flight plan changes, controller logins, chat, METAR and more — delivered precisely per client subscription.

REQUEST / 02

Request / response

55 requests and actions: snapshot queries, squawk and altitude changes, handoff coordination, voice channel toggles — responses matched by id.

TIMER / 03

Timed heartbeat

A once-per-second timer event provides a steady beat for polling and heartbeat detection.

ROBUST / 04

Robust & reliable

Each request runs on its own async worker thread; the backpressure guard handles load spikes, with automatic cleanup on disconnect.

04 · Tech stack

Tech stack

ComponentDescription
C++17DLL compilation standard
Visual Studio 2022 (v143)Toolset
Win32 (x86)Target platform (EuroScope is a 32-bit process)
websocketppWebSocket server (header-only, bundled)
nlohmann/jsonJSON serialization / deserialization
vcpkgC++ package manager
.NET 8 / WPFBundled test client (TestProject)

05 · Quick start

Quick start

Copy EuroscopeDataBridge.dll to the EuroScope plugin directory, or add the DLL path in EuroScope's plugin settings.

Start EuroScope — once loaded, the plugin automatically starts the WebSocket server at ws://127.0.0.1:48521.

Connect to the WebSocket, subscribe to the event types you want, then send query or modification requests.

Verify without writing code: the repository bundles a WPF test client at tests/EuroScopeDataBridge.TestProject.

JavaScript
const ws = new WebSocket('ws://127.0.0.1:48521');

ws.onmessage = (event) => {
  const msg = JSON.parse(event.data);
  console.log(msg.type, msg.data);
};

ws.onopen = () => {
  // Subscribe to events: pushes are only delivered for subscribed types
  ws.send(JSON.stringify({
    type: 'subscribe', id: 'sub-1',
    data: { events: ['radar_update', 'flightplan_update', 'timer'] }
  }));

  // Query all flight plans
  ws.send(JSON.stringify({ type: 'get_flightplans', id: 'req-1' }));
};

06 · Docs

Full documentation

API Documentation · Wiki

Covers the connection, message formats, all 13 push events and 55 requests, the data structure reference, error handling and configuration constants — with complete request/response examples.

Open the docs →

07 · Download

Download

Latest Release · latest

Get the prebuilt EuroscopeDataBridge.dll (Win32) from GitHub Releases. The version shown is taken automatically from the latest release; copy the DLL into the EuroScope plugin directory to install.

Download ↗