Files
andromeda-viewer/docs/general.md
T

1.4 KiB

General Documentation

Architecture

The Viewer is consists of 2 parts:

  • Server
  • Client

Server

The server handles:

  • Serving the client (HTML, CSS & JS)
  • Login
  • WebSocket <-> UDP bridge

Client

The client does most of the work. It receives UDP-packages through the web-socket connection to the server.

Login

The client encodes the password using MD5. It then sends all needed information in a JSON-string to the server.

The server then adds its own MAC-address and translates the JSON-data to the XML-RPC-format used for the login-process of SL.

The server translates the XML-RPC response to JSON and send and sends it back to the client as the response of its request.

The client will then open a WebSocket back to the server. The server acts as a WebSocket to UDP bridge. For every WebSocket-connection the server listen on a new UDP-Port, to differentiate clients. A lot of Packet types have no way off identifying the target client. Having a port per client fixes this.

The server keeps no log of the network-data

Client View

The client uses the FLUX model. Where redux manages the state and the view-components are using React. And they styled with Tailwind CSS.