This repository was archived by the owner on Jun 7, 2020. It is now read-only.
File tree Expand file tree Collapse file tree
Rocket.Chat/Managers/Socket Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -53,6 +53,41 @@ extension SocketManager {
5353
5454 fileprivate func handleError( _ result: SocketResponse , socket: WebSocket ) {
5555 let error = SocketError ( json: result. result [ " error " ] )
56+ switch error. error {
57+ case . invalidSession:
58+ guard !isPresentingInvalidSessionAlert else {
59+ return
60+ }
61+
62+ let invalidSessionAlert = UIAlertController (
63+ title: localized ( " alert.socket_error.invalid_user.title " ) ,
64+ message: localized ( " alert.socket_error.invalid_user.message " ) ,
65+ preferredStyle: . alert
66+ )
67+
68+ invalidSessionAlert. addAction ( UIAlertAction ( title: localized ( " global.ok " ) , style: . default, handler: { _ in
69+ self . isPresentingInvalidSessionAlert = false
70+ AppManager . reloadApp ( )
71+ } ) )
72+
73+ func present( ) {
74+ isPresentingInvalidSessionAlert = true
75+
76+ let alertWindow = UIWindow . topWindow
77+ alertWindow. windowLevel = UIWindowLevelAlert + 1
78+ alertWindow. rootViewController? . present ( invalidSessionAlert, animated: true )
79+ }
80+
81+ API . current ( ) ? . client ( PushClient . self) . deletePushToken ( )
82+
83+ AuthManager . logout {
84+ AuthManager . recoverAuthIfNeeded ( )
85+ DispatchQueue . main. async ( execute: present)
86+ }
87+ default :
88+ break
89+ }
90+
5691 Log . debug ( " [ERROR][SocketManager]: \( error. message) " )
5792 }
5893
Original file line number Diff line number Diff line change @@ -55,6 +55,7 @@ final class SocketManager {
5555
5656 internal var internalConnectionHandler : SocketCompletion ?
5757 internal var connectionHandlers = NSMapTable < NSString , AnyObject > ( keyOptions: . strongMemory, valueOptions: . weakMemory)
58+ internal var isPresentingInvalidSessionAlert = false
5859
5960 // MARK: Connection
6061
You can’t perform that action at this time.
0 commit comments