Skip to content

Commit d73bbd6

Browse files
declared disconnect socket function
1 parent dbf5632 commit d73bbd6

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

Adamant/ServiceProtocols/SocketService.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ protocol SocketService: AnyObject {
1818

1919
func connect(address: String)
2020

21+
func disconnect()
22+
2123
// MARK: - Receive New Transaction
2224

2325
func receiveNewTransaction(completion: ((ApiServiceResult<Transaction>) -> Void)?)

Adamant/Services/DataProviders/AdamantChatsProvider.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ class AdamantChatsProvider: ChatsProvider {
9090

9191
self?.blackList = []
9292
self?.removedMessages = []
93+
94+
self?.disconnectFromSocket()
9395
}
9496

9597
NotificationCenter.default.addObserver(forName: Notification.Name.AdamantAccountService.stayInChanged, object: nil, queue: nil) { [weak self] notification in
@@ -195,11 +197,11 @@ extension AdamantChatsProvider {
195197
let privateContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
196198
privateContext.parent = self.stack.container.viewContext
197199
self.socketService.connect(address: address)
198-
self.socketService.receiveNewTransaction { result in
200+
self.socketService.receiveNewTransaction { [weak self] result in
199201
switch result {
200202
case .success(let trans):
201-
self.processingQueue.async {
202-
self.process(messageTransactions: [trans],
203+
self?.processingQueue.async {
204+
self?.process(messageTransactions: [trans],
203205
senderId: address,
204206
privateKey: privateKey,
205207
context: privateContext,
@@ -211,6 +213,10 @@ extension AdamantChatsProvider {
211213
}
212214
}
213215

216+
func disconnectFromSocket() {
217+
self.socketService.disconnect()
218+
}
219+
214220
func update(completion: ((ChatsProviderResult?) -> Void)?) {
215221
if state == .updating {
216222
completion?(nil)

Adamant/Services/SocketService/AdamantSocketService.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ class AdamantSocketService: SocketService {
5151
socket?.connect()
5252
}
5353

54+
func disconnect() {
55+
socket?.disconnect()
56+
}
57+
5458
func receiveNewTransaction(completion: ((ApiServiceResult<Transaction>) -> Void)?) {
5559
socket?.on("newTrans", callback: { [weak self] data, ack in
5660
guard let data = data.first else { return }

0 commit comments

Comments
 (0)