Skip to content

GFN Client Overview

The GFN client is an Angular-based application delivered as bundled JavaScript. The source was obtained by beautifying production client bundles from the rig/client package snapshot.

Bundle Files

FileSizePurpose
vendor_beautified.js3.0 MB / 115,689 linesWebRTC, networking, session management, telemetry
main_beautified.js5.7 MB / 143,116 linesCore services, IPC bridge, database, logging
298_beautified.js4.3 MB / 103,534 linesStreaming manager, platform selection UI
277_beautified.js1.1 MB / 18,755 linesUI carousel, game tiles, telemetry
598_beautified.js105 KB / 2,934 linesAngular Material forms

Total: ~384,000 lines of client code

Architecture

┌─────────────────────────────────────────────────┐
│                GFN Client (Angular)              │
│                                                  │
│  ┌──────────────┐  ┌──────────────┐             │
│  │  UI Layer    │  │  IPC Bridge  │             │
│  │ (277, 298)   │  │   (main)     │             │
│  └──────┬───────┘  └──────┬───────┘             │
│         │                 │                      │
│  ┌──────▼─────────────────▼──────┐              │
│  │      Core Services (main)     │              │
│  │  - StreamingManagerService    │              │
│  │  - StreamingService           │              │
│  │  - TelemetryService           │              │
│  │  - AuthService                │              │
│  │  - DatabaseService            │              │
│  └──────┬────────────────────────┘              │
│         │                                        │
│  ┌──────▼────────────────────────┐              │
│  │   vendor.js (WebRTC/Session)  │              │
│  │  - NetworkTest (ntrtcclient)  │              │
│  │  - WebRTC streaming           │              │
│  │  - Session state machine      │              │
│  │  - Telemetry aggregator       │              │
│  └───────────────────────────────┘              │
└─────────────────────────────────────────────────┘

Key Services

ServiceFileDescription
StreamingManagerService298Orchestrates streaming lifecycle, platform selection
StreamerConfigService298Streaming configuration
StreamingService298Active streaming state
GameSessionDistributedTracingService298Session tracing/telemetry
TelemetryServicemain/277Analytics event sending
GFNUriActionHandlerService277GFN URI scheme handling
NetworkTestvendorPre-session network quality check

GFN Commands (IPC Bridge)

The client exposes a bridge IPC to the native shell. Key command categories:

Authentication

  • SET_AUTH_INFO
  • SET_AUTH_TOKEN

Session Control

  • QUERY_GFN_START
  • QUERY_GFN_STOP
  • QUERY_GFN_GET_SESSION_INFO
  • PAUSE_STREAMING
  • RESUME
  • CANCEL

Streaming Stats

  • QUERY_GFN_GET_STREAM_STATS
  • QUERY_GFN_REGISTER_CALLBACK
  • IPC_GFN_REMOTE_CONFIG_UPDATED_EVENT

Input

  • Keyboard layout management
  • Microphone control
  • Gamepad input management

Display

  • HDR capabilities query
  • FPS capabilities query
  • Volume control

GFN URI Scheme

The client handles gfn:// URIs:

URI ActionDescription
GFN_PC_MEMBERSHIP_JOINOpen membership join flow
GFN_PC_MEMBERSHIP_UPGRADEOpen membership upgrade
GFN_PC_HELP_CONNECTIONSOpen connection help

Build Info

From vendor_beautified.js:

USER_AGENT: "GFN-PC/1.0 (WebRTC) NetworkTest/0.0.51"
CLIENT_IDENTIFICATION: "GFN-PC"
CLIENT_VERSION: "1.0"
CHANGELIST: "master-8926289"

admindesk.top — Reversed & documented from Asgard rig backups and GCIS plugin binaries.