白バージョン - 団結は、Web GLは、MySQLデータベースを読んで公開します

仕事の要件、プロジェクトがする必要がある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 [「情報」]が、あなたが通常使用することができます。

おすすめ

転載: www.cnblogs.com/Small-Transparent/p/11231193.html