Giter Club home page Giter Club logo

opentoonix-rtmp-server's Introduction

OpenToonix RTMP Server

RTMP (Real-Time Messaging Protocol) server emulator for Toonix World (mostly known as Mundo Toonix).

Requirements

  • Java - Version 17
  • Red5 Server instance - Version 1.3.25

Building

To build the project, you need to have Maven installed on your computer.

Once you have Maven installed, you can run the following command to build the app:

mvn clean package

Running

To run the app, you need to build it or download the latest release.

Once you have the app built or downloaded, you have to move the opentoonix-rtmp-server-*.war file to the webapps folder of your Red5 Server instance.

Then, you can start the Red5 Server instance and the app will be running.

Features

You can check the current state of features here.

Support

For further support, you can join us on Discord.

opentoonix-rtmp-server's People

Contributors

juansecu avatar matycoder avatar snyk-bot avatar

Stargazers

 avatar

Watchers

 avatar

opentoonix-rtmp-server's Issues

Isolate server messages by map scenes

Isolate server messages (commands, chat messages, etc) by using names from map scenes. These are the names of every map scene:

  • baloons_a
  • baloons_b
  • baloons_c
  • baloons_d
  • baloons_e
  • beach_a
  • beach_b
  • beach_c
  • ben10_a
  • ben10_b
  • ben10_c
  • ben10_d
  • ben10_e
  • ben10_f
  • brazilbts2013_a
  • building_a
  • building_b
  • building_c
  • building_d
  • building_e
  • carrera2012_a
  • cave_a
  • cave_b
  • cave_c
  • cave_d
  • cave_e
  • chiclesplot_a
  • chiclesplot_b
  • chiclesplot_c
  • chocokrispis_a
  • chocokrispis_b
  • clouds_a
  • clouds_b
  • clouds_c
  • clouds_d
  • copatoon
  • desert_a
  • desert_b
  • desert_c
  • desert_d
  • earthday
  • elevator
  • game_arbol
  • game_maiz
  • game_moscas
  • game_omnitrix
  • game_patitas
  • game_pipes
  • game_totems
  • game_van
  • giraffas_a
  • giraffas_b
  • giraffas_c
  • grex_a
  • grex_b
  • uid<user ID>_home_default
  • lovy
  • maxsteel_a
  • maxsteel_b
  • maxsteel_c
  • monsterh_a
  • monsterh_b
  • monsterh_c
  • paper_a
  • paper_b
  • paper_c
  • paper_d
  • paper_e
  • patitas_a
  • patitas_b
  • patitas_c
  • pegajosas_a
  • pegajosas_b
  • pegajosas_c
  • shop_a
  • woods_a
  • woods_b
  • woods_c
  • woods_d
  • xalingo_a
  • xalingo_b
  • xalingo_c

Add configuration to connect to a Redis database

For giving players a real-time experience and storing players information (even if the application server crashes), it is necessary to use a memory-based database like Redis to store players data while they are playing the game.

Set order of steps for incoming connections

Set order of steps for incoming connections. The order is the following:

  1. Connection to RTMP scope
  2. Execute command getRoomSOName
  3. Execute command join
  4. Send message AvatarEnterScene

Requirements:

  1. The previous mentioned steps must be saved and updated in Redis for every incoming connection.
  2. If an incoming connection does not follow this order, the server must destroy it immediately.
  3. This order must expire after 5 minutes. If the incoming socket does not follow these steps during the given amount of time, it will be impossible for it to connect with the server.

Add validation for room joins through scene slots

Taking in mind the file /cosmos/xml/feeds/la/map.xml from the game client, it is necessary, not only to add validation for room joins through scene slots, but also making the slots configurable in the server side.

im so happy for this

i'll play this when this go out all days litterally, also you think that after u finish the 3.0 mundo toonix version, u could make a version in html5? they did that with club penguin and mundo toonix is simplier

Remove duplicated libraries from WAR file

There are some duplicated libraries in the WAR file in terms of running the server with a Red5 instance, which produce errors to initialize the scope of the application with Red5, so it is necessary to remove them from the WAR file.

Add utility class for building responses

Add utility class for building responses for the game client to avoid the use of creating and injecting hash maps, which make difficult to understand how the responses are built.

Responses are sent in a very similar format to JSON, with some exceptions:

  • Strings don't include " at the beginning, neither at the end
  • Colons (:) are substituted by equals (=)

Example:

Take the following response, which is used to tell the game client what is the Shared Object name, as an example:

{soName=nombredelso, call={room=lovy}}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.