arrow_back
logo
search
SupportlaunchAPI
menulaunchSign In
close
OverviewConceptsAdmin PanelCloudAPICompliance
Overview
Get StartedAuthorizationMessagingJackpotsMultiplayerGame Client InterfaceErrors Handle
Get StartedAuthorizationGame SessionMessagingBettings and WinningsRandom Numbers GeneratorJackpotsMultiplayerTesting
Overview
Overview
Using the client libraryImplementing an integrationDeploying an integration
Replying to a gamePending Winnings
.NET CoreGoJavaNodeJsPHPPythonRuby
OverviewOverwriting jackpots
launchAPISupport
launchSign In

Messaging

Before you begin

Before you can send a messages from Client Game to Server Game function, you need to:

  1. Create a Game inside the Fireball Admin panel
  2. Create Game Function
  3. Authorize in operator integration

Overview

Communication between any Fireball components is done by sending and receiving messages type of 'BaseMessage' class or their child. Same messages using to communicate between Game Client and Game Server Function. Any message required to have the unique Name to register the current action. Some names are taken by reserved by Fireball and can't be used (as "authenticate", "session" e.t.c.)

Prepare Custom Messages

  1. Create GameMessages.cs script with registring custom messages names as const variables:
    public class GameMessages
    {
        public const string SPIN_REQUEST = "spin-request";
        public const string SPIN_RESULT = "spin-result";

        ....

    }
  1. Create a custom messages for selected actions:
    public class CustomSpinRequest : BaseMessage
    {
        public string GameType;
        public long BetAmount;

        public CustomSpinRequest()
        {
            Name = GameMessages.SPIN_REQUEST;
        }
    }

    public class CustomSpinResult : BaseMessage
    {
        public string GameType;
        public long WinAmount;

        public CustomSpinResult(string gameType, long winAmount, BaseMessage baseMessage)
        {
            CopyBaseParams(baseMessage);

            Name = GameMessages.SPIN_RESULT;
            GameType = gameType;
            WinAmount = winAmount;
        }
    }

    ...
  1. Receive Custom Message by adding message name checking:
        public async Task<MessageResult> HandleMessage(ParseResult parseResult)
        {
            if (parseResult.IsSuccess)
            {
                switch (parseResult.MessageName)
                {
                    ...

                    case GameMessages.SPIN_REQUEST:
                        return await MakeCustomSpin(parseResult.ToMessage<CustomSpinRequest>());

                    ...
                }
            }

            ...
        }
  1. Send Custom Message Response to the Game client:
        public async Task<MessageResult> MakeCustomSpin(CustomSpinRequest message)
        {
            // example of custom calculation
            long winAmount = 0;
            var random = await _fireball.Random.GetRandomDouble(0, 1);
            if (random > 0.5f)
            {
                winAmount = message.BetAmount * 2;
            }

            // create response message
            var response = new CustomSpinResult(message.GameType, winAmount, message);

            // send response message to the game client
            return await _fireball.SendMessageToClient(response);
        }

Messages timeout

Next Steps

  • Deploy Game Function
  • Manage Game Session and game state
  • Messaging with Game client
  • Check Sample Project
Copyright © 2020-. All rights reserved.v1.0.8