我正在使用Unity 2018开发WebGL应用。
我需要访问托管在同一服务器上的MySQL数据库。
我的问题是:我可以使用C#和MySqlConnector(我更喜欢该解决方案),还是必须使用Web服务调用?
编辑:似乎无法在WebGL构建中使用/使用Web服务,因为System.Web.Services无法访问。
谢谢
答案 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";
}
?>
希望有帮助!