2323
2424#if os(Linux) || os(macOS) && !COCOAPODS
2525import Foundation
26- import HTTP
27- import WebSocket
26+ import NIO
27+ import WebSocketKit
2828
2929// Builds with *Swift Package Manager ONLY*
3030public class VaporEngineRTM : RTMWebSocket {
@@ -34,23 +34,13 @@ public class VaporEngineRTM: RTMWebSocket {
3434 public weak var delegate : RTMDelegate ?
3535 // Websocket
3636 private var websocket : WebSocket ?
37- private var futureWebsocket : Future < WebSocket > ?
3837
3938 public required init ( ) { }
4039
4140 public func connect( url: URL ) {
42- guard let host = url . host else {
43- fatalError ( " ERROR - Cannot extract host from ' \( url . absoluteString ) ' " )
41+ _ = WebSocket . connect ( to : url , on : eventLoopGroup ) { socket in
42+ self . didConnect ( websocket : socket )
4443 }
45-
46- let scheme : HTTPScheme = url. scheme == " wss " ? . wss : . ws
47- futureWebsocket = HTTPClient . webSocket (
48- scheme: scheme,
49- hostname: host,
50- path: url. path,
51- on: eventLoopGroup
52- )
53- . do ( didConnect)
5444 }
5545
5646 func didConnect( websocket: WebSocket ) {
@@ -61,20 +51,14 @@ public class VaporEngineRTM: RTMWebSocket {
6151 websocket. onText { ws, text in
6252 self . delegate? . receivedMessage ( text)
6353 }
64-
65- websocket. onError { ws, error in
66-
67- }
68-
69- websocket. onCloseCode { closeCode in
54+ _ = websocket. onClose. always { _ in
7055 self . delegate? . disconnected ( )
7156 }
7257 }
7358
7459 public func disconnect( ) {
75- websocket? . close ( )
60+ _ = websocket? . close ( )
7661 websocket = nil
77- futureWebsocket = nil
7862 }
7963
8064 public func sendMessage( _ message: String ) throws {
0 commit comments