sbrwxmpp

command module
v0.0.0-...-db890f3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 13, 2023 License: MPL-2.0 Imports: 20 Imported by: 0

README

sbrwxmpp

Latest Release

A XMPP server specifically designed for Soapbox Race World.

Motivation

Traditionally SBRW servers have used Openfire as the XMPP server. So why make a new one?

  1. TLSv1 support
    The game uses an ancient version of OpenSSL that doesn't support newer TLS versions. Newer Java versions disable TLSv1 so one must go through hoops to re-enable it for Openfire. SBRWXMPP uses a vendored version of Go TLS library, so not even a Go update can break TLS for SBRWXMPP.

  2. Old XMPP standards
    The game requires the XMPP server to support obsolete XMPP standards like XEP-0078 and Groupchat 1.0. Openfire updates may remove support for these standards. XEP-0078 is already unsupported in Openfire and requires installing a plugin to re-enable it. But SBRWXMPP is guaranteed to support features required by the game.

  3. Game's fragile XMPP client
    The game's XMPP implementation is known to break if the XMPP handshake contains features not expected by the client. For example not disabling Stream Compression and Roster Versioning in Openfire breaks the game. SBRWXMPP doesn't support any unnecessary XMPP extensions that are not needed by the game.

  4. Performance
    SBRWXMPP is written in Go, instead of Java, and is designed to be as lightweight and performant as possible.

Usage

Download the latest release of sbrwxmpp (or build it yourself)
Create a folder for sbrwxmpp, place the binary in the created folder and run it.
A configuration file (sbrwxmpp.toml) will be created with other necessary files such as certificate and database.

By default, the SBRW Core only supports Openfire API. You will need to apply a patch for adding sbrwxmpp support.

You will need to do the following modifications in PARAMETER table:

Parameter Value
SBRWXMPP_ADDRESS http://127.0.0.1:8087/api/
SBRWXMPP_TOKEN value of api.key in sbrwxmpp.toml
XMPP_IP publicly accessible IP or domain name of the XMPP server
XMPP_PORT port of addr in sbrwxmpp.toml (5333 by default)
OPENFIRE_ADDRESS (delete this parameter)
OPENFIRE_TOKEN (delete this parameter)

Make sure you change the value of domain in sbrwxmpp.toml. It should be equal to the value of XMPP_IP in core configuration.

Used by

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446.
Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL