code: func (es *eventStream) sendMemberEvent(me serf.MemberEvent) error {
  	members := make([]Member, 0, len(me.Members))
  	for _, m := range me.Members {
  		sm := Member{
  			Name:        m.Name,
  			Addr:        m.Addr,
  			Port:        m.Port,
  			Tags:        m.Tags,
  			Status:      m.Status.String(),
  			ProtocolMin: m.ProtocolMin,
  			ProtocolMax: m.ProtocolMax,
  			ProtocolCur: m.ProtocolCur,
  			DelegateMin: m.DelegateMin,
  			DelegateMax: m.DelegateMax,
  			DelegateCur: m.DelegateCur,
  		}
  		members = append(members, sm)
  	}
  
  	header := responseHeader{
  		Seq:   es.seq,
  		Error: "",
  	}
  	rec := memberEventRecord{
  		Event:   me.String(),
  		Members: members,
  	}
  	return es.client.Send(&header, &rec)
  }
docs: // sendMemberEvent is used to send a single member event