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())); } }