MQTT implementation in Basic Multiplayer via webGL Client: Unterschied zwischen den Versionen

Aus hyperdramatik
Wechseln zu: Navigation, Suche
Zeile 19: Zeile 19:
 
6. delete the testMqtt script
 
6. delete the testMqtt script
  
7. make a new script and call it exactly -> MQTT_Debug
+
7. make a new C# script and call it exactly -> MQTT_Debug
 +
 
 +
8. delete everything and copy this sourcecode in to your new script
 +
<source lang="javascript" line start="2" highlight="4-6">
 +
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
 +
 
 +
}
 +
</source>

Version vom 25. Mai 2020, 16:08 Uhr

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

}