예제 #1
0
 private void OnNodeDisConnected(BeaconNode node)
 {
     if (node != null && this.NodeDisConnected != null)
     {
         this.NodeDisConnected(this, node);
     }
 }
예제 #2
0
 private void OnBeaconArgumentsChanged(BeaconNode obj)
 {
     if (this.IsRunning)
     {
         _beacon.Publish(_selfNode.Serialize(), TimeSpan.FromSeconds(1));
     }
 }
예제 #3
0
        private void OnBeaconReady(object sender, NetMQBeaconEventArgs e)
        {
            try
            {
                var message = e.Beacon.Receive();
                if (message.Bytes == null || message.Bytes.Length == 0)
                {
                    return;
                }

                BeaconNode node = new BeaconNode(message.PeerHost);
                node.Deserialize(message.Bytes);

                if (!_nodes.ContainsKey(node))
                {
                    _nodes.Add(node, DateTime.Now);

                    OnNodeConnected(node);
                }
                else
                {
                    _nodes[node] = DateTime.Now;
                }
            }
            catch
            {
            }
        }
예제 #4
0
 private static void PrintTitle(BeaconNode selfNode)
 {
     Console.ForegroundColor = ConsoleColor.Gray;
     Console.WriteLine("Beacon console is started. Press Ctrl+Z to exit.");
     Console.WriteLine("Current Beacon:");
     Console.WriteLine("{0,15}: {1}", "GUID", selfNode.Guid);
     Console.WriteLine("{0,15}: {1}", "Name", selfNode.Name);
     Console.WriteLine("{0,15}: {1}", "Group", selfNode.Group);
     Console.WriteLine("{0,15}: {1}", "Address", selfNode.Address);
     Console.WriteLine("{0,15}: {1}", "HostName", selfNode.HostName);
     Console.WriteLine("{0,15}: {1}", "Application", selfNode.HostApp);
     Console.WriteLine("{0,15}: {1}", "Arguments", selfNode.Arguments);
 }
예제 #5
0
 protected bool Equals(BeaconNode other)
 {
     return(string.Equals(Address, other.Address) && string.Equals(Name, other.Name) && Group == other.Group && Name == other.Name && Arguments == other.Arguments);
 }
예제 #6
0
 private static void beacon_NodeConnected(Beacon arg1, BeaconNode arg2)
 {
     PrintAllNodes(arg1);
 }