From e0d8f16666e9d94c049b9900628975538ac82512 Mon Sep 17 00:00:00 2001 From: Erik Little Date: Sat, 16 Sep 2017 12:08:38 -0400 Subject: [PATCH] More linux work --- Source/SocketIO/Engine/SocketEngine.swift | 2 -- .../Engine/SocketEngineWebsocket.swift | 20 ++++++++++++++++++- Source/SocketIO/Util/SocketExtensions.swift | 2 ++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Source/SocketIO/Engine/SocketEngine.swift b/Source/SocketIO/Engine/SocketEngine.swift index d043713..98a15fd 100644 --- a/Source/SocketIO/Engine/SocketEngine.swift +++ b/Source/SocketIO/Engine/SocketEngine.swift @@ -105,10 +105,8 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll /// Whether or not this engine uses secure transports public private(set) var secure = false - #if !os(Linux) /// A custom security validator for Starscream. Useful for SSL pinning. public private(set) var security: SSLSecurity? - #endif /// Whether or not to allow self signed certificates. public private(set) var selfSigned = false diff --git a/Source/SocketIO/Engine/SocketEngineWebsocket.swift b/Source/SocketIO/Engine/SocketEngineWebsocket.swift index c4eef2d..f0b209a 100644 --- a/Source/SocketIO/Engine/SocketEngineWebsocket.swift +++ b/Source/SocketIO/Engine/SocketEngineWebsocket.swift @@ -145,9 +145,9 @@ extension SocketEngineWebsocket { } } + #if !os(Linux) // MARK: Starscream delegate methods - #if !os(Linux) /// Delegate method for when a message is received. public func websocketDidReceiveMessage(socket: WebSocket, text: String) { parseEngineMessage(text) @@ -168,5 +168,23 @@ extension WebSocket { var isConnected: Bool { return state == .open } + + func write(string: String) { + do { + try ws?.send(string) + } catch { + DefaultSocketLogger.Logger.error("Error sending string", type: "SocketEngineWebsocket", args: string) + } + } + + func write(data: Data) { + do { + try data.withUnsafeBytes {(bytes: UnsafePointer) in + try ws?.send(Array(UnsafeBufferPointer(start: bytes, count: data.count))) + } + } catch { + DefaultSocketLogger.Logger.error("Error sending data", type: "SocketEngineWebsocket", args: data) + } + } } #endif diff --git a/Source/SocketIO/Util/SocketExtensions.swift b/Source/SocketIO/Util/SocketExtensions.swift index ef422c3..f380093 100644 --- a/Source/SocketIO/Util/SocketExtensions.swift +++ b/Source/SocketIO/Util/SocketExtensions.swift @@ -23,7 +23,9 @@ // THE SOFTWARE. import Foundation +#if !os(Linux) import StarscreamSocketIO +#endif enum JSONError : Error { case notArray