MQTT implementation in Basic Multiplayer via webGL Client

Aus hyperdramatik
Wechseln zu: Navigation, Suche

First things first: I think there is no easy way how webGL could connect to an MQTT Broker directly, maybe there is but I could not figure one out. So the basic idea is to just let the server connect to the MQTT Broker and act as an hub. It as well relaxes the Broker traffic as well.

So the way we communicate is this webGL_Client --> Linux_Server --> MQTT_BROKER --> Linux_Server --> webGL-Client.

Bare this in mind.

So let´s start:

1. Download the MQTT Libary for Unity in this article --> MQTT in Unity

2. unzip the file

3. open up your multiplayer projekt we will work with this projekt -->Unity-Basic-Multiplayer

4. go to ASSESTS -> import packages -> custom packages and get the package from your downloaded folder under packages it might be named like unity3Dmqtt

5. in your assests folder you now should have a MQTT folder open it up and go to the test folder

6. delete the testMqtt script

7. make a new C# script and call it exactly -> MQTT_Debug

8. delete everything and copy this sourcecode in to your new script

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MQTT_Debug : Mirror.NetworkBehaviour
{
    [
       Header("YOU NEED TO HAVE IT ON A EMPTY GAMEOBJECT", order = 0), Space(-10, order = 1),
        Header("NAMED --> MQTT", order = 2), Space(-10, order = 3),

        Space(15, order = 4),
   ]


    [Mirror.SyncVar]
    public string text; //stores incoming MQTT messages without topic if you want to sort this do it in mqttShiftIO

    [Mirror.SyncVar]
    public string msg; //stores outgoing MQTT messages

    [Mirror.SyncVar]
    public string topic; //stores outgoing MQTT topic the message is send to

}