func NewServe(output bool) *nc.SocketServer { var s *nc.SocketServer r := func(conn net.Conn, b []byte) ([]byte, error) { cmd := string(b) id, ok := s.GetCli(conn) if !ok { // not join,auth first! if err := connAuth(s, conn, cmd); err != nil { return nil, err } return []byte("ok"), nil } if strings.HasPrefix(cmd, "MAUTH:") { //auth member return memberAuth(s, id, cmd[6:]) } return handleCommand(s, id, cmd) } s = nc.NewSocketServer(r) s.ReadDeadLine = defaultReadDeadLine if !output { s.OutputOff() } return s }