2
votes

Unity WebGL: puis-je accéder à MySql en utilisant MySqlConnector?

Je développe une application WebGL avec Unity 2018.

J'ai besoin d'accéder à une base de données MySQL hébergée sur le même serveur.

Ma question est la suivante: puis-je utiliser C # et MySqlConnector (solution que je préfère), ou dois-je utiliser à la place des appels de services Web?

EDIT: il semble qu'il n'est pas non plus possible d'utiliser / consommer le service Web dans la version WebGL, car System.Web.Services n'est pas accessible.

Merci


1 commentaires

peut-être que ce lien peut vous aider


3 Réponses :


2
votes

Vous pouvez créer un websocket. Le serveur qui hébergera l'application WebGL aura un serveur websocket, qui effectuera la communication MySQL et renverra les résultats. Et l'application WebGL (celle d'unité) se connecte à ce websocket à l'aide d'un jeton d'authentification (pour s'assurer que c'est le WebGL qui se connecte, pas quelqu'un d'autre) et obtenir les résultats des requêtes là-bas


0 commentaires

2
votes

La façon générale de faire cela (à la fois pour des raisons de sécurité et c'est juste une manière plus standard du côté unité des choses) est que vous hébergez simplement les pages d'interaction de base de données côté serveur dans php, puis utilisez l'un ou l'autre des classes WWW ou UnitWebRequest pour l'utiliser réellement.

Vous pouvez récupérer assez facilement des données au format Json pour travailler avec du côté client

Un tutoriel / guide assez ancien (bien que toujours pertinent) pour quelque chose de ce genre peut être trouvé Ici

En général, l'idée est cependant - le jeu fait une demande à PHP en utilisant une clé cryptée pour la validation, PHP fait le travail de la base de données et puis renvoie certaines données généralement au format Json


0 commentaires

1
votes

Vous avez peut-être déjà votre réponse, mais je l'ai fait il y a quelques semaines et c'est assez facile. Je poste le code php et c # ci-dessous, regardez:

Code C #

 <?php
$servername = "123";
$server_username = "123";
$server_password = "123";
$dbName = "123"; 

//Connection
$conn = new PDO ("mysql:host=$servername;dbname=$dbName", $server_username, $server_password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//Check Connection
if(!$conn){
    die("Connection failed.");
}else{
echo "Connection Successful";
} 
?>

Code PHP

remplacez «123» par les champs obligatoires

 WWWForm form = new WWWForm();
WWW www = new WWW("url of file location on server goes here", form);
yield return www;
Debug.Log(www.text);// this should return "successful connection"

J'espère que cela vous aidera!


0 commentaires