peerjs 上的 WebRtc

WebRtc on peerjs

提问人:Sasha Troxa 提问时间:11/16/2023 最后编辑:soundflixSasha Troxa 更新时间:11/17/2023 访问量:24

问:

我正在使用 WebRTC 库,我需要使用 jwt 令牌和 roomName 创建一个连接。我不明白该怎么做。

class WebRTCManager: NSObject {
    var peerConnection: RTCPeerConnection?
    var audioTrack: RTCAudioTrack?

    override init() {
        super.init()
        let configuration = RTCConfiguration()
        configuration.iceServers = [RTCIceServer(urlStrings: ["wss//..."])]
        
        let constraints = RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: nil)
        
        let defaultPeerConnectionFactory = RTCPeerConnectionFactory()
        peerConnection = defaultPeerConnectionFactory.peerConnection(with: configuration, constraints: constraints, delegate: self)
    }
    
    func createOffer() {
        peerConnection?.offer(for: RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: nil), completionHandler: { [weak self] (sdp, error) in
            if let error = error {
                print("Error creating offer: \(error)")
                return
            }
            print(sdp)
            if let sdp = sdp {
                self?.peerConnection?.setLocalDescription(sdp, completionHandler: { (error) in
                    print(error)
                    print(error?.localizedDescription)
                })
            }
        })
    }
}
Swift WebRTC PeerJS

评论


答:

0赞 Li Jin 11/16/2023 #1

下面是一个简化的示例,用于 JWT 令牌生成和 WebSocket 用于信令:jsonwebtoken-swift

import Foundation
import JSONWebToken

// Generate JWT Token
let jwt = JWT( /* your claims here */ )
let jwtString = try? jwt.sign(using: .hs256(secret: "your_secret_key"))

// Connect to Signaling Server (WebSocket)
let socket = WebSocket(url: URL(string: "ws://your.signaling.server")!)
socket.connect()

// Send JWT Token and Room Name
let message = ["type": "joinRoom", "token": jwtString, "roomName": "your_room"]
let jsonData = try? JSONSerialization.data(withJSONObject: message)
socket.write(data: jsonData!)