mirror of
https://github.com/XFox111/backbone.git
synced 2026-04-22 07:17:59 +03:00
5bd251897d8c2277d17b953cd2cddea730b9afe8
* chore(deps): Bump Microsoft.NET.ILLink.Tasks from 9.0.7 to 9.0.8 (#6) --- updated-dependencies: - dependency-name: Microsoft.NET.ILLink.Tasks dependency-version: 9.0.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): Bump Microsoft.DotNet.ILCompiler from 9.0.7 to 9.0.8 (#5) --- updated-dependencies: - dependency-name: Microsoft.DotNet.ILCompiler dependency-version: 9.0.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Eugene Fox <eugene@xfox111.net> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Backbone
Small ASP.NET web server for one way communication between two clients.
This server is one of the key components of EasyLogon project.
Overview
sequenceDiagram
participant S as Sender
participant B as Backbone
participant R as Receiver
opt SignalR
R->>+B: Connection request
B->>-R: connection_id
end
opt Arbitrary data channel
R-->>S: connection_id
end
opt HTTP POST
S->>+B: connection_id + data
end
opt SignalR
B->>-R: data
end
Endpoints
- SignalR:
/ws- WebSocket endpoint for real-time communication. - POST:
/send?id={connectionId}- HTTP POST endpoint for sending data to the receiver.
Body of the /send endpoint must be of type Content-Type: application/json.
Key points
- The arbitrary channel for
connectionIdtranmission should be as secure as possibe (preferably an offline channel), since posession ofconnectionIdcan pose a security threat. - Connection between Backbone and receiver preferably should be re-established after every transmission to avoid replay attacks.
Related papers
Development
Prerequisites
For development you can use Dev Containers or GitHub Codespaces. Otherwise you will need to install following tools:
Building and debugging
Here're some commonly used commands:
dotnet restore # Install dependencies
dotnet run # Start the development server
dotnet build # Build the project for production
To build a Docker image, run:
docker build -t <tag_name> .
Tip
If you use VS Code, you can also use pre-defined tasks for building and debugging.
Contributing
There are many ways in which you can participate in the project, for example:
- Submit bugs and feature requests, and help us verify as they are checked in
- Review source code changes
- Review documentation and make pull requests for anything from typos to new content
If you are interested in fixing issues and contributing directly to the code base, please refer to the Contribution Guidelines
©2025 Eugene Fox. Licensed under MIT license
Languages
C#
77.9%
Dockerfile
22.1%