Exemplo n.º 1
0
        protected override void OnMessage(MessageEventArgs e)
        {
            if (NetworkUtils.SplitPacket(e.Data, 0).Equals("packet_connect"))
            {
                blockChain.blockChainClient.Connect(NetworkUtils.SplitPacket(e.Data, 1), NetworkUtils.SplitPacket(e.Data, 2));
                Send("You are successfully connected to " + ipAddress + ":" + port);
            }

            if (NetworkUtils.SplitPacket(e.Data, 0).Equals("packet_block"))
            {
                bool blockAdded = blockChain.AddForeignBlock(JsonConvert.DeserializeObject <Block>(NetworkUtils.SplitPacket(e.Data, 1)));
                Send("packet_block" + NetworkUtils.packetSeparator + blockAdded + NetworkUtils.packetSeparator + "ws://" + ipAddress + ":" + port + "/Blockchain");
            }

            if (NetworkUtils.SplitPacket(e.Data, 0).Equals("packet_verification"))
            {
                bool isBlockChainValid = blockChain.CompareBlocks(JsonConvert.DeserializeObject <List <Block> >(NetworkUtils.SplitPacket(e.Data, 1)));
                Send("packet_verification" + NetworkUtils.packetSeparator + isBlockChainValid + NetworkUtils.packetSeparator + "ws://" + ipAddress + ":" + port + "/Blockchain");
            }

            if (NetworkUtils.SplitPacket(e.Data, 0).Equals("packet_chainrequest"))
            {
                Send("packet_chain" + NetworkUtils.packetSeparator + JsonConvert.SerializeObject(blockChain.GetAllBlocks()));
            }
        }