Starting session
To use any SDK a API request, a Session should be started first.
Session establishes communucation between client and server, and Session object used for constructing and sending requests and receiving responses and udates from backend. To construct session, some keys should be taken first from backend`s installation along with connection endpoints settings.
Here an example of starting session (for details please refer to example project):
private fun setUpSession() {
// mtContext used for acces to underlying MtProto protocol
authData = mtContext.authenticate().get(TIMEOUT, TimeUnit.MILLISECONDS)
// get MtProto authentication data
val authText = gson.toJson(authData)
val restoredAuthData = gson.fromJson(authText, AuthData::class.java)
// create session object
session = mtContext.createSession()
.setTag("rpc")
.setScheduler(mtContext.defaultScheduler)
.setAuthData(authData)
.build()
//
val updatesManager = mtContext.createUpdatesManager(session) { true }
updatesManager.listener = UpdatesManagerListener()
// initialize session state listener
val sessionListener = object : Session.Listener {
override fun onStarted(p0: Session?) {
binding.textviewFirst.text = "Authorize to proceed"
binding.authorizeCaller.isEnabled = true
binding.authorizeCallee.isEnabled = true
}
override fun onStopped(p0: Session?) {}
override fun onConnected(p0: Session?, p1: Int) {}
override fun onDisconnected(p0: Session?, p1: Int) {}
override fun onError(p0: Session?, p1: Exception?) {}
override fun onMessage(p0: Session?, p1: TLType?) {}
override fun onNewSessionCreated(p0: Session?) {}
}
session.addListener(sessionListener)
// start session
session.start()
}Last updated
