Skip to content
Snippets Groups Projects
Select Git revision
  • development
  • main default protected
  • integration
  • v1.1.5
  • v1.1.4
  • v1.1.3
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v1.0.0
10 results

XXMessengerClient.md

Blame
  • XXMessengerClient

    XXMessengerClient is a client wrapper library for use in xx-messenger application.

    ▶️ Instantiate messenger

    Example:

    // setup environment:
    var environment: MessengerEnvironment = .live()
    
    // change cMix NDF environment if needed:
    environment.ndfEnvironment = ...
    
    // use alternative user-discovery if needed:
    environment.udAddress = ...
    environment.udCert = ...
    environment.udContact = ...
    
    // instantiate messenger:
    let messenger: Messenger = .live(environment)

    🚀 Start messenger

    Example:

    // allow cancellation of auth callbacks registration:
    var authCallbacksCancellable: Cancellable?
    
    func start(messenger: Messenger) throws {
      // check if messenger is loaded:
      if messenger.isLoaded() == false {
        // check if messenger is created and stored on disk:
        if messenger.isCreated() == false {
          // create new messenger and store it on disk:
          try messenger.create()
        }
        // load messenger stored on disk:
        try messenger.load()
      }
    
      // start messenger's network follower:
      try messenger.start()
    
      // register auth callbacks before connecting:
      authCallbacksCancellable = messenger.registerAuthCallbacks(
        AuthCallbacks(handle: { callback in
          // implement auth callbacks handling
        })
      )
    
      // check if messenger is connected:
      if messenger.isConnected() == false {
        // start end-to-end connection:
        try messenger.connect()
      }
    
      // check if messenger is logged in with user-discovery:
      if messenger.isLoggedIn() == false {
        // check if messenger is registered with user-discovery:
        if try messenger.isRegistered() == false {
          // register new user with user-discovery:
          try messenger.register(username: "new-username")
        } else {
          // login previously registered user with user-discovery:
          try messenger.logIn()
        }
      }
    }

    🛠️ Use client components directly

    Example:

    // get cMix:
    let cMix = messenger.cMix()
    
    // get E2E:
    let e2e = messenger.e2e()
    
    // get UserDicovery:
    let ud = messenger.ud()