Swift

Testen Ihres Codes

Zu diesem Zeitpunkt wird Ihr VonageVideoSDK.swift Datei sollte in etwa so aussehen (mit ein paar Anpassungen):

import OpenTok

// Replace with your Application ID
let kApiKey = ""
// Replace with your generated session ID
let kSessionId = ""
// Replace with your generated token
let kToken = ""

struct Signal: Identifiable {
  let id = UUID()
  let text: String
  let isUsers: Bool
}

class VonageVideoSDK: NSObject {
    @Published var isSessionConnected = false
    @Published var messages: [Signal] = []

    lazy var session: OTSession = {
        return OTSession(apiKey: kApiKey, sessionId: kSessionId, delegate: self)!
    }()
    
    override init() {
        super.init()
        var error: OTError?
        session.connect(withToken: kToken, error: &error)
        if let error = error {
            print("Session creation error \(error.description)")
        }
    }
    
    func sendSignal(type: String, data: String) {
        var error: OTError?
        session.signal(withType: type , string: data, connection: nil, error: &error)
        if let error = error {
            print("Session creation error \(error.description)")
        } else {
            messages.append(.init(text: data, isUsers: true))
        }
    }
   
 }

// MARK: - OTSession delegate callbacks
extension VonageVideoSDK: OTSessionDelegate {
    func sessionDidConnect(_ session: OTSession) {
       isSessionConnected = true
    }
    
    func sessionDidDisconnect(_ session: OTSession) {
        isSessionConnected = false
    }
    
    func session(_ session: OTSession, didFailWithError error: OTError) {
        print("Session Failed to connect: \(error.localizedDescription)")
    }
    
    func session(_ session: OTSession, receivedSignalType type: String?, from connection: OTConnection?, with string: String?) {
        if let string = string, let type = type, let connection = connection {
            guard type == "msg" else { return }
            guard connection.connectionId != self.session.connection?.connectionId else { return }
            messages.append(.init(text: string, isUsers: false))
        }
    }
    
    func session(_ session: OTSession, streamCreated stream: OTStream) {}
    
    func session(_ session: OTSession, streamDestroyed stream: OTStream) {}
}

In Ihrem fertigen Code sollten Sie hart kodierte Werte haben, die Folgendes ersetzen YOUR_APP_ID, YOUR_SESSION_ID und YOUR_TOKEN - wenn Sie dies noch nicht getan haben, siehe Einrichten der Authentifizierung oben.

Ihr ContentView.swift Datei sollte folgendermaßen aussehen:

import SwiftUI

struct ContentView: View {
    @StateObject private var sdk = VonageVideoSDK()
    @State private var message: String = ""
    
    var body: some View {
        VStack {
            if (sdk.isSessionConnected) {
                List(sdk.messages) { signal in
                    Text(signal.text)
                        .listRowSeparator(.hidden)
                        .frame(maxWidth: .infinity, alignment: signal.isUsers ? .trailing : .leading)
                }
                HStack {
                    TextField("Message", text: $message)
                    Button("Send") {
                        sdk.sendSignal(type: "msg", data: message)
                        self.message = ""
                    }.buttonStyle(.bordered)
                }.padding(8)
            } else {
                ProgressView {
                    Text("Connecting ...")
                        .font(.title)
                }
            }
        }
    }
}
  1. Erstellen und starten Sie die Anwendung in Xcode (CMD + R).
  2. Geben Sie einen Text in das Textfeld ein und senden Sie ihn ab.
  3. Sie sollten sehen, dass die Nachricht dem Nachrichtenverlauf hinzugefügt wird.

Als nächstes können wir testen, wie es aussieht, wenn jemand anderes eine Nachricht sendet. Wir können das simulieren, indem wir die App erneut auf einem anderen Simulator/Gerät ausführen:

  1. Erstellen Sie die Anwendung und führen Sie sie auf einem anderen Simulator aus.
  2. Öffnen Sie die Anwendung erneut auf dem ursprünglichen Simulator.
  3. Geben Sie einen Text in das Textfeld ein und senden Sie ihn an beide Simulatoren.
  4. Sie sollten sehen, dass beide Nachrichten zum Nachrichtenverlauf hinzugefügt werden.

Tipp zur Fehlersuche: Wenn Sie keine Verbindung zur Sitzung herstellen können, überprüfen Sie die Xcode-Konsole auf Fehler. Das wahrscheinlichste Problem ist, dass Ihr API-Schlüssel, Ihre Sitzungs-ID oder Ihr Token nicht richtig eingerichtet ist. Da Sie Ihre Anmeldeinformationen fest kodiert haben, ist es auch möglich, dass Ihr Token abgelaufen ist.

Einfacher Text-Chat

In diesem Tutorial lernen Sie, wie Sie mit der Video API von Vonage einen einfachen Text-Chat von Grund auf aufbauen. Dies ist der schnellste Weg, um einen Proof of Concept für diese Funktionalität auf der Videoplattform zu erstellen.

Schritte
1
Übersicht
2
Bevor Sie beginnen
3
Konfigurieren einer Vonage Video-Applikation
4
Das Projekt erstellen
5
Authentifizierung einrichten
6
Verbinden mit der Sitzung
7
Aussenden eines Signals
8
Empfangen eines Signals
9
Testen Ihres Codes
10
Schlussfolgerung