Ejemplo n.º 1
0
    public void ReadCallback(IAsyncResult ar)
    {
        Encoding enc   = Encoding.UTF8;
        int      bytes = stream.EndRead(ar);

        if (bytes == 0)
        {
            StopClient();
            return;
        }

        string message = enc.GetString(readbuf, 0, bytes);

        message = message.Replace("\r", "").Replace("\n", "");
        ClientBaseDebugLog("ReadCallback " + message);

        ProtocolItem item = null;

        try
        {
            item = JsonUtility.FromJson <ProtocolItem>(message);

            mainThread.Post(d =>
            {
                if (item != null)
                {
                    // ProtocolMaker.DebugDeserializeProtocol(item);
                    switch ((ProtocolType)item.msgType)
                    {
                    case ProtocolType.A2C_UpdateClientInfo:
                        A2C_UpdateClientInfo(item);
                        break;

                    case ProtocolType.A2C_ResponseStartGame:
                        A2C_ResponseStartGame();
                        break;

                    case ProtocolType.A2C_AddForceToBall:
                        A2C_AddForceToBall(item);
                        break;

                    case ProtocolType.A2C_UpdateLine:
                        A2C_UpdateLine(item);
                        break;

                    case ProtocolType.A2C_GameResult:
                        A2C_GameResult(item);
                        break;
                    }
                }
            }, null);
        }
        catch
        {
            ClientBaseDebugLog("JsonUtility.From Json Failed");
        }

        readbuf = new byte[2048];
        stream.BeginRead(readbuf, 0, readbuf.Length, new AsyncCallback(ReadCallback), null);
    }
Ejemplo n.º 2
0
    //
    // ログイン
    //
    public static ProtocolItem Mk_C2A_RegisterHost()
    {
        ProtocolItem item = new ProtocolItem();

        item.msgType = ProtocolType.C2A_RegisterHost;
        return(item);
    }
Ejemplo n.º 3
0
    public static ProtocolItem Mk_A2C_ResponseStartGame()
    {
        ProtocolItem item = new ProtocolItem();

        item.msgType = ProtocolType.A2C_ResponseStartGame;
        return(item);
    }
Ejemplo n.º 4
0
    //
    // ゲームスタート
    //
    public static ProtocolItem Mk_C2A_RequestStartGame()
    {
        ProtocolItem item = new ProtocolItem();

        item.msgType = ProtocolType.C2A_RequestStartGame;
        return(item);
    }
Ejemplo n.º 5
0
 /// <summary>
 ///     Navigate through the local file system
 /// </summary>
 private void LocalBrowser(ProtocolItem protocolItem)
 {
     if (protocolItem.Type is FolderType)
     {
         GetLocalFilesAndFolders(LocalItems, protocolItem.FullPath);
         LocalPath = protocolItem.FullPath;
     }
 }
Ejemplo n.º 6
0
 /// <summary>
 ///     Browse into the folder
 /// </summary>
 /// <param name="obj"></param>
 private void RemoteBrowser(ProtocolItem obj)
 {
     if (obj.Type is FolderType)
     {
         GetRemoteFilesAndFolders(RemoteItems, obj.FullPath);
         RemotePath = obj.FullPath;
     }
 }
Ejemplo n.º 7
0
    //
    // Result
    //

    public static ProtocolItem Mk_C2A_GameResult(int objectId)
    {
        ProtocolItem item = new ProtocolItem();

        item.msgType    = ProtocolType.C2A_GameResult;
        item.objectId_1 = objectId;

        return(item);
    }
Ejemplo n.º 8
0
    public static ProtocolItem Mk_Position(int sendFrom, Vector3 vector)
    {
        ProtocolItem item = new ProtocolItem();

        item.sendFrom      = sendFrom;
        item.vectorParam_1 = FormartVector3ToVector_3(vector);
        item.msgType       = ProtocolType.Position;
        return(item);
    }
Ejemplo n.º 9
0
    public static ProtocolItem Mk_A2C_UpdateClientInfo(int hostId, int guestId)
    {
        ProtocolItem item = new ProtocolItem();

        item.msgType    = ProtocolType.A2C_UpdateClientInfo;
        item.objectId_1 = hostId;
        item.objectId_2 = guestId;
        return(item);
    }
Ejemplo n.º 10
0
    public static ProtocolItem Mk_SimpleMsg(int sendFrom, string msg)
    {
        ProtocolItem item = new ProtocolItem();

        item.sendFrom    = sendFrom;
        item.stringParam = msg;
        item.msgType     = ProtocolType.SimpleMsg;
        return(item);
    }
Ejemplo n.º 11
0
    public static ProtocolItem Mk_C2A_UpdateLine(int sendFrom, int id, Vector3 pos, Vector3 dir, Vector3 scale, bool isCreate)
    {
        ProtocolItem item = new ProtocolItem();

        item.sendFrom      = sendFrom;
        item.objectId_1    = id;
        item.msgType       = ProtocolType.C2A_UpdateLine;
        item.vectorParam_1 = FormartVector3ToVector_3(pos);
        item.vectorParam_2 = FormartVector3ToVector_3(dir);
        item.vectorParam_3 = FormartVector3ToVector_3(scale);
        item.boolParam     = isCreate;
        return(item);
    }
Ejemplo n.º 12
0
    public static void DebugDeserializeProtocol(ProtocolItem item)
    {
        switch (item.msgType)
        {
        case ProtocolType.SimpleMsg:
            Debug.Log("DeserializeProtocol" + item.sendFrom + " " + item.stringParam);
            break;

        case ProtocolType.Position:
            Debug.Log("DeserializeProtocol" + item.sendFrom + " " + item.vectorParam_1);
            break;
        }
    }
Ejemplo n.º 13
0
    public void A2C_AddForceToBall(ProtocolItem item)
    {
        ClientBaseDebugLog("A2C_AddForceToBall");

        if (item.sendFrom != SelfClientObjectID)
        {
            ClientBaseDebugLog("A2C_AddForceToBall  Excuted!!");
            FieldManager.GetInstance().Ball.SetupRemoteAddForece(
                ProtocolMaker.FormartVector_3ToVector3(item.vectorParam_1),
                ProtocolMaker.FormartVector_3ToVector3(item.vectorParam_2),
                ProtocolMaker.FormartVector_3ToVector3(item.vectorParam_3)
                );
        }
    }
Ejemplo n.º 14
0
    void A2C_UpdateClientInfo(ProtocolItem item)
    {
        ClientBaseDebugLog("A2C_UpdateClientInfo id " + item.objectId_1 + " result " + item.objectId_2);
        HostClientObjectID  = item.objectId_1;
        GuestClientObjectID = item.objectId_2 >= 0 ? item.objectId_2 : new int?();

        if (IsGameHost)
        {
            SelfClientObjectID = HostClientObjectID;
        }
        else
        {
            SelfClientObjectID = GuestClientObjectID;
        }
    }
Ejemplo n.º 15
0
    //
    // Ball
    //
    public static ProtocolItem Mk_C2A_AddForceToBall(int sendFrom, Vector3 dir, Vector3 pos, Vector3 velocity)
    {
        ProtocolItem item = new ProtocolItem();

        item.sendFrom      = sendFrom;
        item.msgType       = ProtocolType.C2A_AddForceToBall;
        item.vectorParam_1 = FormartVector3ToVector_3(dir);
        item.vectorParam_2 = FormartVector3ToVector_3(pos);
        item.vectorParam_3 = FormartVector3ToVector_3(velocity);
        // item.vectorParam_1.x = Mathf.Floor(dir.x * 1000) / 1000f;
        // item.vectorParam_1.y = Mathf.Floor(dir.y * 1000) / 1000f;
        // item.vectorParam_1.z = Mathf.Floor(dir.z * 1000) / 1000f;
        // item.vectorParam_2.x = Mathf.Floor(pos.x * 1000) / 1000f;
        // item.vectorParam_2.y = Mathf.Floor(pos.y * 1000) / 1000f;
        // item.vectorParam_2.z = Mathf.Floor(pos.z * 1000) / 1000f;
        return(item);
    }
Ejemplo n.º 16
0
    public void A2C_UpdateLine(ProtocolItem item)
    {
        ClientBaseDebugLog("A2C_UpdateLine");

        if (item.sendFrom != SelfClientObjectID)
        {
            ClientBaseDebugLog("A2C_UpdateLine  Excuted!!" + item.boolParam);

            if (item.boolParam)
            {
                Debug.LogError("A2C_UpdateLine");
                var id  = item.objectId_1;
                var pos = ProtocolMaker.FormartVector_3ToVector3(item.vectorParam_1);
                var dir = ProtocolMaker.FormartVector_3ToVector3(item.vectorParam_2);
                var scl = ProtocolMaker.FormartVector_3ToVector3(item.vectorParam_3);
                FieldManager.GetInstance().OnRemoteLineCreated(id, pos, dir, scl);
            }
            else
            {
                Debug.LogError("OnRemoteLineDead");
                FieldManager.GetInstance().OnRemoteLineDead(item.objectId_1);
            }
        }
    }
Ejemplo n.º 17
0
 public void A2C_GameResult(ProtocolItem item)
 {
     ClientBaseDebugLog("A2C_GameResult");
     WinObjectID = item.objectId_1;
     FieldManager.GetInstance().RequestUpdateGameStateAsync(GameState.Goal);
 }
Ejemplo n.º 18
0
 public static ProtocolItem Mk_A2C_AddForceToBall(ProtocolItem c2a_item)
 {
     c2a_item.msgType = ProtocolType.A2C_AddForceToBall;
     return(c2a_item);
 }
Ejemplo n.º 19
0
 void On_A2C_RegisterAsClient(ProtocolItem item)
 {
 }
Ejemplo n.º 20
0
 void On_A2C_RegisterAsHost(ProtocolItem item)
 {
 }
Ejemplo n.º 21
0
    // クライアントからメッセージ受信
    protected override void OnMessage(string msg, TcpClient client)
    {
        //base.OnMessage(msg, client);

        // -------------------------------------------------------------
        // あとは送られてきたメッセージによって何かしたいことを書く
        // -------------------------------------------------------------
        ProtocolItem item = null;

        try
        {
            item = ProtocolMaker.MakeToJson(msg);
        }
        catch
        {
            Debug.LogError("ProtocolMaker.MakeToJson(msg); failed" + msg);
        }

        ServerDebugLog("OnMessage : " + item.msgType.ToString() + " From " + item.sendFrom);

        switch (item.msgType)
        {
        case ProtocolType.C2A_RegisterHost:
            hostObjectId = GetClientObjectId(client);
            var host_logined = ProtocolMaker.Mk_A2C_UpdateClientInfo(hostObjectId.Value, -1);
            msg = ProtocolMaker.SerializeToJson(host_logined);
            SendMessageToClientAll(msg);
            break;

        case ProtocolType.C2A_RegisterClient:
            guestObjectId = GetClientObjectId(client);
            var guest_logined = ProtocolMaker.Mk_A2C_UpdateClientInfo(hostObjectId.Value, guestObjectId.Value);
            msg = ProtocolMaker.SerializeToJson(guest_logined);
            SendMessageToClientAll(msg);
            break;

        case ProtocolType.C2A_RequestStartGame:
            var game_start = ProtocolMaker.Mk_A2C_ResponseStartGame();
            msg = ProtocolMaker.SerializeToJson(game_start);
            SendMessageToClientAll(msg);
            break;

        case ProtocolType.C2A_AddForceToBall:
            var add_forec = ProtocolMaker.Mk_A2C_AddForceToBall(item);
            msg = ProtocolMaker.SerializeToJson(add_forec);
            SendMessageToClientAll(msg);
            break;

        case ProtocolType.C2A_UpdateLine:
            var update_line = ProtocolMaker.Mk_A2C_UpdateLine(item);
            msg = ProtocolMaker.SerializeToJson(update_line);
            SendMessageToClientAll(msg);
            break;


        case ProtocolType.C2A_GameResult:
            var result = ProtocolMaker.Mk_A2C_GameResult(item);
            msg = ProtocolMaker.SerializeToJson(result);
            SendMessageToClientAll(msg);
            break;

        default:
            // クライアントに受領メッセージを返す
            SendMessageToClientAll(msg);
            break;
        }
    }
Ejemplo n.º 22
0
 public static ProtocolItem Mk_A2C_UpdateLine(ProtocolItem c2a_item)
 {
     c2a_item.msgType = ProtocolType.A2C_UpdateLine;
     return(c2a_item);
 }
Ejemplo n.º 23
0
    public static ProtocolItem Mk_A2C_GameResult(ProtocolItem item)
    {
        item.msgType = ProtocolType.A2C_GameResult;

        return(item);
    }
Ejemplo n.º 24
0
 public static string SerializeToJson(ProtocolItem item)
 {
     return(JsonUtility.ToJson(item));
 }