仕事の要件、プロジェクトがする必要があるSQLデータの読み取りリフレッシュし、団結をする必要がWebGLのバージョンをリリースするが、WebGLのプラットフォームでの統一が直接MySQLをサポートすることはできません、
そう多くは解決策に来たかったです。
複数のクライアントのためのソケット接続、情報のオンラインチャットルームの中で最もので、考慮されることはありません。
Javaの同僚の助けを借りて正式な解決策を見つけました。
全体のデータ・ストリームを次のように
団結 - > javascriptの - >のmysql
javaspcritリフレッシュは、SQLデータを読み込み、JSON形式にページを保存し、団結はUnityWebRequestとJSONのページを読んで(WWWは、バージョン2018で非推奨)、値を降り、JSONはデータセットに解析され、割り当てられます
JSONコード
[ { " ID ":" 37 " 、 " RFID ":ヌル、 " material_id ":" M000000001 " 、 " タイプ":" 2 " 、 " CREATE_TIME ":" 2019年4月10日午後5時21分00秒" 、 " START_TIME ":ヌル、 " finish_timeに」:ヌル、 「is_start":" 0 " " is_finish ":" 0 " " is_delete ":" 0 " }、 { " ID ":" 38 " " RFID ":ヌル、 " material_id ":" M000000002 " " タイプ」:" 1 "、 「CREATE_TIME ":" 2019年4月10日午後05時21分00秒" " START_TIME ":ヌル、 " finish_timeに":ヌル、 " is_start ":" 1 " " is_finish ":" 0 " " is_delete ":" 0 " 、 } ]
統一UnityWebRequestアクセスコード
文字列のパス= 「http://192.168.1.100/Data.aspx 」。 IEnumerator GetWebInfo() { UnityWebRequest WEBINFO = UnityWebRequest.Get(パス)。 収量 リターンwebInfo.SendWebRequest()。 もし(webInfo.isHttpError || webInfo.isNetworkError) { DEBUG.LOG(webInfo.error)。 StopAllCoroutines(); 収量 リターン はnull ; } 他 { 情報 = webInfo.downloadHandler.text。 DEBUG.LOG(webInfo.downloadHandler.text)。 } }
JSONデータがネストされているので、Newtonsoftを解決するために使用されます。Newtonsoft.Json.Linqを使用して参照。
公共 ボイドInfoParsing(){ // 情報解析 JArray JARを= JArray.Parse(情報); DEBUG.LOG(JAR [jar.Count - 1。]); // 列名新しいデータテーブル、JSONに対応する値 データテーブル表を= 新しい新しいデータテーブル(" 情報" ); DataColumnCollectionカラム = table.Columns; Columns.Add(" RFID "、typeof演算(文字列)); Columns.Add(" material_id "、typeof演算(文字列)); columns.Add(" タイプ"、typeof演算(文字列)); columns.Add(" CREATE_TIME "、typeof演算(文字列)); columns.Add(" START_TIME "、typeof演算(文字列)); columns.Add(" finish_timeに"、typeof演算(文字列)); columns.Add(" is_start "、typeof演算(文字列)); Columns.Add(" is_finish "、typeof演算(文字列)); Columns.Add(" is_delete "、typeof演算(文字列)); // 単位含有{...}解析ループ順次 ために(int型 I = 0 ; IはJARを< .count; Iは++ ) { // 各セルの値を解析し 、A jオブジェクトOBJ = JObject.Parse(JAR [I] .ToString()); DEBUG.LOG(OBJ [ " material_id " ]); // 新しい行データセット、および割り当て のDataRow infoRow =table.NewRow(); infoRow [ " RFID " ] = OBJ [ " RFID " ]。 infoRow [ " material_id " ] = OBJ [ " material_id " ]。 infoRow [ " タイプ" ] = OBJ [ " タイプ" ]。 infoRow [ " CREATE_TIME " ] = OBJ [ " CREATE_TIME " ]。 infoRow [ " のstart_time " ] = OBJ [ "]; infoRow [ " finish_timeに" ] = OBJ [ " finish_timeに" ]。 infoRow [ " is_start " ] = OBJ [ " is_start " ]。 infoRow [ " is_finish " ] = OBJ [ " is_finish " ]。 infoRow [ " is_delete " ] = OBJ [ " is_delete " ]。 table.Rows.Add(infoRow)。 } // 将存储完成的表到テーブルを追加中 infoData.Tables.Add(表)。 DEBUG.LOG(infoData.Tables [ " 情報" ] .Rows.Count)。 DEBUG.LOG(infoData.Tables [ " 情報" ] .Rows [ 0 ] [ 3 ])。 WebText.text = infoData.Tables [ " 情報" ] .Rows [ 0 ] [ 3 ] .ToString(); }
この時点で、すべての値がinfoData.Tables [「情報」]が、あなたが通常使用することができます。