現在、Pubnub シグナリングを使用して WebRTC を実装する必要がある iOS プロジェクトに取り組んでいます。プロジェクトに PubNubSwift CocoaPods を追加しました。そして、メッセージを発行しようとすると、発行メソッドはメッセージ タイプが JSONCodable であることを期待します。そこで、次のように構造体を作成しました。
struct sdpPacket: Codable {
var type: String?
var sdp: String?
}
struct sdpDataPacket: Codable {
var id: String?
var packet: sdpPacket?
var number: String?
}
publish メソッドに次の行を追加しました。
let sdpPacketVal = sdpPacket(type: "offer", sdp: sdp.description)
let packet = sdpDataPacket(id: uuid, packet: sdpPacketVal, number: self.PubnubChannel)
let jsonData = try! JSONEncoder().encode(packet)
let jsonString = String(data: jsonData, encoding: .utf8)!
print(jsonString)
self.appDelegate.pubnub.publish(channel: channelName, message: jsonString) { result in
print(result.map { "Publish Response at \($0.timetoken.timetokenDate)" })
}
しかし、応答では、私は次のように結果を得ています
failure(The request contained a malformed JSON payload)
jsonStringを表示します
{
"id":"userUUID",
"packet":{
"type":"offer",
"sdp":"RTCSessionDescription:\noffer\nv=0\r\no=- 7871361170753072042 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS RTCmS\r\nm=audio 9 UDP\/TLS\/RTP\/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:PYqe\r\na=ice-"
},
"number":"userPubnubName"
}
私のコードのエラーが何であるかわかりません。私を助けてください。