feat: 初始化 iOS 远程控制端项目

This commit is contained in:
2026-07-29 10:34:02 +08:00
parent 11173eb04c
commit 1e37aa64cc
20 changed files with 2610 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
import Foundation
/// JSON WebRTCSignalServer SignalMessage
/// type: REGISTER / OFFER / ANSWER / ICE_CANDIDATE / TARGET_OFFLINE /
/// CONNECTION_REJECTED / REQUEST_ERROR / REQUEST_TIMEOUT / REGISTER_SUCCESS
struct SignalMessage: Codable {
var type: String?
var fromDeviceId: String?
var toDeviceId: String?
var deviceType: String?
/// payload JSON {"sdp": "..."}
var payload: String?
var authType: String?
var authValue: String?
init(type: String? = nil,
fromDeviceId: String? = nil,
toDeviceId: String? = nil,
deviceType: String? = nil,
payload: String? = nil,
authType: String? = nil,
authValue: String? = nil) {
self.type = type
self.fromDeviceId = fromDeviceId
self.toDeviceId = toDeviceId
self.deviceType = deviceType
self.payload = payload
self.authType = authType
self.authValue = authValue
}
/// payload JSON
func payloadJSON() -> [String: Any]? {
guard let payload, let data = payload.data(using: .utf8) else { return nil }
return (try? JSONSerialization.jsonObject(with: data)) as? [String: Any]
}
/// payload
static func encodePayload(_ dict: [String: Any]) -> String? {
guard let data = try? JSONSerialization.data(withJSONObject: dict) else { return nil }
return String(data: data, encoding: .utf8)
}
}