Unity WebGL:我可以使用MySqlConnector访问MySql吗?

时间:2019-03-13 16:19:58

标签: c# mysql unity3d

我正在使用Unity 2018开发WebGL应用。

我需要访问托管在同一服务器上的MySQL数据库。

我的问题是:我可以使用C#和MySqlConnector(我更喜欢该解决方案),还是必须使用Web服务调用?

编辑:似乎无法在WebGL构建中使用/使用Web服务,因为System.Web.Services无法访问。

谢谢

3 个答案:

答案 0 :(得分:2)

您可以制作一个网络套接字。托管WebGL应用程序的服务器将具有一个websocket服务器,该服务器将进行MySQL通信并返回结果。然后,WebGL应用程序(统一的一个)使用Auth令牌连接到此websocket(以确保连接的是WebGL,而不是其他人),并从那里的查询中获取结果

答案 1 :(得分:2)

执行此操作的一般方法(出于安全考虑,从统一的角度来看,这都是一种更为标准的方法)是您只需在php中托管服务器端数据库交互页面,然后使用WWW or UnitWebRequest个类可以实际利用它。

您可以相当轻松地取回Json格式的数据以在客户端上使用

可以找到关于Here的相当古老(尽管仍然很相关)的教程/指南

通常,想法是-游戏使用某种加密密钥向PHP请求进行验证,PHP进行数据库工作,然后以Json格式回发一些数据

答案 2 :(得分:1)

您可能已经有了答案,但几周前我已经完成了,而且非常简单。 我在下面发布了php和c#代码,看看:

C#代码

 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"

PHP代码

将“ 123”替换为必填字段

 <?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";
} 
?>

希望有帮助!