Skip to content

darkseal-org/Party

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exalted Party Mode Server (internal name: WebsocketPT)

A party-state service that coordinated authenticated HTTP actions and real-time WebSocket updates.

Part of the Dark Seal (Exalted) toolset

What This IsWhat We Used It ForLayoutSecurityLicense

Status: Archived Maintenance: None


Important

This repository is a public archive.

It is read-only, unmaintained, and preserved for reference only. Issues and pull requests are closed. Commit history was squashed into a single snapshot before publication, so this repository contains no development history.


What This Is

WebsocketPT was the party-mode backend for Dark Seal (Exalted). It exposed an HMAC-protected HTTP API for party creation, membership, selection updates, and heartbeats, while a WebSocket server broadcast the latest party state to connected members. Party, member, and license-key records were stored in MongoDB, with active socket connections tracked in memory.

Stack: JavaScript ES modules, Node.js, Express, ws, Mongoose/MongoDB, Docker, and Docker Compose.

What We Used It For

Dark Seal clients used this service to create or join a party, associate a licensed client with a display name and system information, and synchronize champion, skin, and chroma selections. HTTP requests changed or queried the persisted party state; WebSocket broadcasts pushed PARTY_STATE_UPDATE events to party members. The service also handled membership activity, stale-party cleanup, health reporting, and aggregate party statistics.

Architecture

flowchart LR
    Client["Dark Seal client"] -->|HMAC-signed party actions| API["Express API"]
    Client <-->|Live party updates| Socket["WebSocket server"]
    API --> Core["Party and license operations"]
    Socket --> Core
    Core <--> Database[("MongoDB")]
    Core --> Registry["In-memory connection registry"]
    Registry --> Socket
Loading

Repository Layout

Path Contents
websocketpt.js HTTP API, WebSocket server, persistence models, party operations, authentication middleware, and cleanup jobs.
scripts/ Historical multi-party integration test; credentials and client identifiers must be supplied through environment variables.
package.json Node.js package metadata and dependency declarations.
Dockerfile and docker-compose.yml Historical container image and deployment definition.

Historical Usage

How this ran at the time — unsupported, may no longer work

[!WARNING] These steps reflect the environment as it existed when the project was active. Dependencies, APIs, and services referenced here may be dead. Nothing below is tested or supported.

The Node.js service expected MONGODB_URI and HMAC_SECRET in its environment. WS_HOST, WS_PORT, STATS_API_KEY, DEBUG, and MONGO_POOL_SIZE adjusted optional behavior. The integration test additionally required four TEST_LICENSE_KEY_* values and four matching TEST_HWID_* values.

npm install
node websocketpt.js

The retained Compose definition represented the historical container workflow and expected its declared external network and environment variables to exist.

docker compose build
docker compose up

The multi-party test was run separately after its required environment was configured.

node scripts/multi-party-test.js

Security Notice

Caution

This snapshot was scanned and scrubbed of credentials, keys, and private references before publication. Automated scanning is not perfect. Treat every endpoint, hostname, key, hash, or client identifier appearing in this code as dead and untrusted — do not attempt to use it.

Credentials found in the former development history must be considered compromised. Their revocation or rotation must be independently confirmed before this archive is published.

Status

State Archived — read-only
Maintained No
Accepting contributions No
Support None. Provided as-is, without warranty.

Forking is permitted only under whatever license the archive owner confirms. Forks are entirely the forker's responsibility.

License

The package metadata declares the ISC license, but this repository does not contain a standalone license file. Confirm the intended licensing terms and add the corresponding license text before publication. Until then, do not assume permission to use, copy, modify, or distribute this code.

About

WebsocketPT was the party-mode backend for Exalted. It exposed an HMAC-protected HTTP API for party creation, membership, selection updates, and heartbeats, while a WebSocket server broadcast the latest party state to connected members.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages