| | |
| | | ) |
| | | |
| | | var ( |
| | | members [][]byte |
| | | members = make(map[string]NodeInfo,0) |
| | | delay time.Duration |
| | | ) |
| | | |
| | |
| | | // NotifyMsg is called when a user-data message is received |
| | | func (d *delegate) NotifyMsg(b []byte) { |
| | | // logMsg(b) |
| | | members = append(members, b) |
| | | n := NodeInfo{} |
| | | if err:= json.Unmarshal(b, &n);err ==nil { |
| | | members[n.NodeID] = n |
| | | } else { |
| | | fmt.Println("NotifyMsg msg unmarshal err") |
| | | } |
| | | } |
| | | |
| | | func logMsg(b []byte) { |
| | |
| | | return memberlist.Create(conf) |
| | | } |
| | | |
| | | func CreateSearchNodeWhitClose(key string, delay time.Duration) [][]byte { |
| | | func CreateSearchNodeWhitClose(key string, delay time.Duration) map[string]NodeInfo { |
| | | m, err := CreateSearchNode(key) |
| | | if err == nil { |
| | | // fmt.Printf("Local member %s:%d\n", m.LocalNode().Addr, m.LocalNode().Port) |
| | |
| | | return m.Shutdown() |
| | | } |
| | | |
| | | func GetSearchNodes() [][]byte { |
| | | func GetSearchNodes() map[string]NodeInfo { |
| | | return members |
| | | } |