示例#1
0
文件: Program.cs 项目: randoms/Skynet
        static void Main(string[] args)
        {
            Base.Skynet mSkynet = new Base.Skynet();
            Base.Skynet mSkynet2 = new Base.Skynet();
            Node node1 = new Node(mSkynet);
            Node node3 = new Node(mSkynet);
            Node node2 = new Node(mSkynet2);

            Task.Run(async () => {
                // add node1 to node2's childnodes
                NodeResponse res = await node1.sendRequest(node2.selfNode,
                    JsonConvert.SerializeObject(node1.selfNode), "post",
                    "node/" + node2.selfNode.uuid + "/childNodes", Utils.Utils.UnixTimeNow());
                NodeResponse setParentRes = await node1.sendRequest(node1.selfNode,
                    JsonConvert.SerializeObject(node2.selfNode), "put",
                    "node/" + node1.selfNode.uuid + "/parent", Utils.Utils.UnixTimeNow());
                NodeResponse addChildToNode3 = await node2.sendRequest(node3.selfNode,
                    JsonConvert.SerializeObject(node2.selfNode), "post",
                    "node/" + node3.selfNode.uuid + "/childNodes", Utils.Utils.UnixTimeNow());
                NodeResponse setParentNode2 = await node2.sendRequest(node2.selfNode,
                    JsonConvert.SerializeObject(node3.selfNode), "put",
                    "node/" + node2.selfNode.uuid + "/parent", Utils.Utils.UnixTimeNow());
                // stop mskynet2
                mSkynet2.stop();
                Console.ReadLine();
            }).GetAwaiter().GetResult();
        }
示例#2
0
 public Node(List <NodeId> bootStrapParents, Base.Skynet skynet)
 {
     mSkynet   = skynet;
     startTime = new DateTime();
     selfNode  = new NodeId
     {
         uuid  = Guid.NewGuid().ToString(),
         toxid = skynet.tox.Id.ToString()
     };
     childNodes     = new List <NodeId>();
     brotherNodes   = new List <NodeId>();
     nodeChangeLock = new NodeLock {
         from = null, isLocked = false
     };
     AllLocalNodes.Add(this);
     if (bootStrapParents != null && bootStrapParents.Count > 0)
     {
         Task.Run(async() => {
             await joinNetByTargetParents(bootStrapParents);
         });
     }
 }
示例#3
0
 public Node(Base.Skynet skynet) : this(new List <NodeId>() { }, skynet)
 {
 }