diff --git a/models/nodes.go b/models/nodes.go index 86d936a..6eafc65 100644 --- a/models/nodes.go +++ b/models/nodes.go @@ -9,6 +9,7 @@ import ( "time" ) +//Node struct type Node struct { Firstseen time.Time `json:"firstseen"` Lastseen time.Time `json:"lastseen"` @@ -17,6 +18,7 @@ type Node struct { Neighbours interface{} `json:"neighbours"` } +//Nodes struct: cache DB of Node's structs type Nodes struct { Version int `json:"version"` Timestamp time.Time `json:"timestamp"` @@ -24,6 +26,7 @@ type Nodes struct { sync.Mutex } +//NewNodes create Nodes structs (cache DB) func NewNodes() *Nodes { nodes := &Nodes{ Version: 1, @@ -33,17 +36,18 @@ func NewNodes() *Nodes { return nodes } -func (nodes *Nodes) Get(nodeId string) *Node { +//Get a Node by nodeid +func (nodes *Nodes) Get(nodeID string) *Node { now := time.Now() nodes.Lock() - node, _ := nodes.List[nodeId] + node, _ := nodes.List[nodeID] if node == nil { node = &Node{ Firstseen: now, } - nodes.List[nodeId] = node + nodes.List[nodeID] = node } nodes.Unlock() @@ -52,6 +56,7 @@ func (nodes *Nodes) Get(nodeId string) *Node { return node } +//Saver to save the cached DB to json file func (nodes *Nodes) Saver(outputFile string, saveInterval time.Duration) { c := time.Tick(saveInterval) diff --git a/responed/collector.go b/responed/collector.go index c4905b0..709500a 100644 --- a/responed/collector.go +++ b/responed/collector.go @@ -17,7 +17,7 @@ const ( maxDataGramSize int = 8192 ) -//Response of the +//Response of the responed request type Response struct { Address net.UDPAddr Raw []byte diff --git a/websocketserver/client.go b/websocketserver/client.go index c5de2b8..55c47d6 100644 --- a/websocketserver/client.go +++ b/websocketserver/client.go @@ -15,7 +15,7 @@ type Client struct { id int ws *websocket.Conn server *Server - ch chan *struct{} + ch chan interface{} doneCh chan bool } @@ -31,7 +31,7 @@ func NewClient(ws *websocket.Conn, server *Server) *Client { } maxID++ - ch := make(chan *struct{}, channelBufSize) + ch := make(chan interface{}, channelBufSize) doneCh := make(chan bool) return &Client{maxID, ws, server, ch, doneCh} @@ -43,7 +43,7 @@ func (c *Client) GetConnection() *websocket.Conn { } //Write send the msg informations to the clients -func (c *Client) Write(msg *struct{}) { +func (c *Client) Write(msg interface{}) { select { case c.ch <- msg: default: diff --git a/websocketserver/server.go b/websocketserver/server.go index 6c27751..d01de0e 100644 --- a/websocketserver/server.go +++ b/websocketserver/server.go @@ -13,17 +13,17 @@ type Server struct { clients map[int]*Client addCh chan *Client delCh chan *Client - sendAllCh chan *struct{} + sendAllCh chan interface{} closeCh chan bool errCh chan error } -//NewServer creates a new node server +//NewServer creates a new server func NewServer(pattern string) *Server { clients := make(map[int]*Client) addCh := make(chan *Client) delCh := make(chan *Client) - sendAllCh := make(chan *struct{}) + sendAllCh := make(chan interface{}) closeCh := make(chan bool) errCh := make(chan error) @@ -38,22 +38,22 @@ func NewServer(pattern string) *Server { } } -//Add a node listen client +//Add a listen client func (s *Server) Add(c *Client) { s.addCh <- c } -//Del a node listen client +//Del a listen client func (s *Server) Del(c *Client) { s.delCh <- c } -//SendAll to all listen clients refreshed information of a node -func (s *Server) SendAll(node *struct{}) { - s.sendAllCh <- node +//SendAll to all listen clients a msg +func (s *Server) SendAll(msg interface{}) { + s.sendAllCh <- msg } -//Close stops node server +//Close stops server func (s *Server) Close() { s.closeCh <- true } @@ -63,9 +63,9 @@ func (s *Server) Err(err error) { s.errCh <- err } -func (s *Server) sendAll(node *struct{}) { +func (s *Server) sendAll(msg interface{}) { for _, c := range s.clients { - c.Write(node) + c.Write(msg) } } @@ -106,8 +106,8 @@ func (s *Server) Listen() { delete(s.clients, c.id) // broadcast message for all clients - case node := <-s.sendAllCh: - s.sendAll(node) + case msg := <-s.sendAllCh: + s.sendAll(msg) case err := <-s.errCh: log.Println("Error:", err.Error())