// This method connects the client to the server and // if neccessary authenticates with the server public void Connect(INAuthenticateMessage request) { // Check to see if we have a valid session token we can restore var session = RestoreSession(); if (session != null) { // Session is valid, let's connect. _sessionHandler(session); return; } // Cache message for later use for reconnecting purposes in case the session had expired _authenticateMessage = request; // Let's login to authenticate and get a valid token _client.Login(request, _sessionHandler, err => { if (err.Code == ErrorCode.UserNotFound) { _client.Register(request, _sessionHandler, ErrorHandler); } else { ErrorHandler(err); } }); }
public void Register(INAuthenticateMessage message, Action <INSession> callback, Action <INError> errback) { _client.Register(message, (INSession session) => { Enqueue(() => callback(session)); }, (INError error) => { Enqueue(() => errback(error)); }); }
// Invoked by the UI public void PlayAsGuest() { INAuthenticateMessage authMessage = BuildDeviceAuthenticateMessage(); NakamaManager.Instance.Connect(authMessage); }
public void Login(INAuthenticateMessage message, Action <INSession> callback, Action <INError> errback) { authenticate("/user/login", message.Payload, Lang, callback, errback); }
public void Register(INAuthenticateMessage message, Action <INSession> callback, Action <INError> errback) { authenticate("/user/register", message.Payload, Lang, callback, errback); }