diff --git a/Sources/Realtime/Defaults.swift b/Sources/Realtime/Defaults.swift index 296c352..b006b13 100644 --- a/Sources/Realtime/Defaults.swift +++ b/Sources/Realtime/Defaults.swift @@ -45,7 +45,8 @@ public enum Defaults { /// Default encode function, utilizing JSONSerialization.data public static let encode: (Any) -> Data = { json in - try! JSONSerialization + assert(JSONSerialization.isValidJSONObject(json), "Invalid JSON object") + return try! JSONSerialization .data( withJSONObject: json, options: JSONSerialization.WritingOptions() diff --git a/Sources/Realtime/RealtimeClient.swift b/Sources/Realtime/RealtimeClient.swift index b50a6f4..489595a 100644 --- a/Sources/Realtime/RealtimeClient.swift +++ b/Sources/Realtime/RealtimeClient.swift @@ -645,7 +645,7 @@ public class RealtimeClient: TransportDelegate { joinRef: String? = nil ) { let callback: (() throws -> Void) = { - let body: [Any?] = [joinRef, ref, topic, event, payload] + let body: [Any?] = [joinRef, ref, topic.rawValue, event.rawValue, payload] let data = self.encode(body) self.logItems("push", "Sending \(String(data: data, encoding: String.Encoding.utf8) ?? "")")