Exemple #1
0
    // 通信接続処理
    private void Connect(NetConnectInfo info)
    {
        var go = new GameObject("connection");

        go.transform.parent = this.gameObject.transform;

        var con = go.AddComponent <NetConnector>();

        con.DidLoadEvent += this.DidLoad;

        // 通信開始
        if (this.WillStart != null)
        {
            this.WillStart(info);
        }
        if (info.IsPost)
        {
            con.StartConnectPost(info, this.HttpHeaders);
        }
        else
        {
            con.StartConnectGet(info);
        }
        if (info.DidStartDelegate != null)
        {
            info.DidStartDelegate(con);
        }
    }
Exemple #2
0
    /// <summary>
    /// 通信を開始する. (GET)
    /// </summary>
    /// <param name="info">通信情報</param>
    public void StartConnectGet(NetConnectInfo info)
    {
        Debug.Log("[NetConnector] Start Connect GET : " + info.Url);
        if (info == null)
        {
            Debug.LogError("[NetConnector] Error!! Start Connect GET : NetConnectInfo is null.");
            return;
        }
        if (info.Url == null)
        {
            Debug.LogError("[NetConnector] Error!! Start Connect GET : NetConnectInfo URL is null.");
            return;
        }
        this.StopAllCoroutines();
        this.Info            = info;
        this.TimeoutDuration = info.TimeoutDuration;
        this.gameObject.name = info.Url;
        this.IsTimeout       = false;

        if (this.WWW != null)
        {
            this.WWW.Dispose();
        }
        this.WWW          = new WWW(this.Info.Url);
        this.IsConnecting = true;
        this.StartCoroutine("ProcDownload");
    }
Exemple #3
0
    /// <summary>
    /// 通信を開始する. (HTTP ヘッダー付き POST)
    /// </summary>
    /// <param name="info">通信情報</param>
    /// <param name="form">Http ヘッダー情報</param>
    public void StartConnectPost(NetConnectInfo info, Dictionary <string, string> headers)
    {
        Debug.Log("[NetConnector] Start Connect POST : " + info.Url);
        if (info == null)
        {
            Debug.LogError("[NetConnector] Error!! Start Connect POST : NetConnectInfo is null.");
            return;
        }
        if (info.Url == null || !info.IsPost)
        {
            Debug.LogError("[NetConnector] Error!! Start Connect POST : URL is null. Or this connect is not post.");
            return;
        }
        this.StopAllCoroutines();
        this.Info            = info;
        this.TimeoutDuration = info.TimeoutDuration;
        this.gameObject.name = info.Url;
        this.IsTimeout       = false;

        if (this.WWW != null)
        {
            this.WWW.Dispose();
        }
        if (headers != null && headers.Count > 0)
        {
            this.WWW = new WWW(info.Url, info.PostData, headers);
        }
        else
        {
            this.WWW = new WWW(info.Url, info.PostData);
        }
        m_prevProgress    = 0f;
        this.IsConnecting = true;
        this.StartCoroutine("ProcDownload");
    }
Exemple #4
0
    /// <summary>
    /// 通信を開始する. (GET)
    ///     現状, HTTP ヘッダーの追加なしで通信します。
    /// </summary>
    /// <param name="tag">管理用タグ名. 削除時に指定する.</param>
    /// <param name="priority">通信優先度. 数字が大きいほど優先度が上.</param>
    /// <param name="url">通信先 URL</param>
    /// <param name="dataType">ダウンロードデータ種類</param>
    /// <param name="didLoad">通信終了時に呼ばれるメソッド</param>
    public NetConnectInfo StartConnectGet(string tag, int priority, string url, string dataType)
    {
        var info = new NetConnectInfo(url)
        {
            Tag = tag, Priority = priority, DataType = dataType
        };

        this.EnqueueConnectQueue(info);
        return(info);
    }
Exemple #5
0
    // 通信接続リクエストキューに実行優先順にソートして追加
    private void EnqueueConnectQueue(NetConnectInfo info)
    {
        m_connectQueue.Enqueue(info);
        var list = from i in m_connectQueue.ToArray()
                   orderby i.Priority descending
                   select i;

        m_connectQueue.Clear();
        foreach (var i in list)
        {
            m_connectQueue.Add(i);
        }
    }
Exemple #6
0
 /// <summary>
 /// 通信を開始する.  MCNetConnectInfo 継承クラスをつかうときはこいつを使うべし.
 /// </summary>
 /// <param name="info">通信情報</param>
 public void StartConnect(NetConnectInfo info)
 {
     this.EnqueueConnectQueue(info);
 }
Exemple #7
0
 /// <summary>
 /// 通信を開始する. (POST)
 /// </summary>
 /// <param name="info">通信情報</param>
 public void StartConnectPost(NetConnectInfo info)
 {
     this.StartConnectPost(info, null);
 }