处理udp启动逻辑
This commit is contained in:
parent
b1c6b45f35
commit
3283c2ae61
@ -172,10 +172,8 @@ actor SDLContextActor {
|
||||
// 获取当前udp启动的地址
|
||||
let localAddress = udpHole.getLocalAddress()
|
||||
|
||||
self.udpHole = udpHole
|
||||
|
||||
// 阻塞等待udpHole是准备好的状态
|
||||
await udpHole.channelIsActived()
|
||||
await self.handleUDPHoleReady()
|
||||
|
||||
// 处理心跳逻辑
|
||||
let pingTask = Task.detached {
|
||||
@ -229,8 +227,19 @@ actor SDLContextActor {
|
||||
}
|
||||
}
|
||||
|
||||
self.udpHole = udpHole
|
||||
self.udpHoleWorkers = [pingTask, dataTask, signalTask]
|
||||
|
||||
// 开始探测nat的类型
|
||||
Task {
|
||||
let natType = await self.proberActor.probeNatType(using: udpHole)
|
||||
self.setNatType(natType: natType)
|
||||
SDLLogger.shared.log("[SDLContext] nat_type is: \(natType)")
|
||||
}
|
||||
|
||||
// 注册
|
||||
self.doRegisterSuper()
|
||||
|
||||
return udpHole
|
||||
}
|
||||
|
||||
@ -256,23 +265,6 @@ actor SDLContextActor {
|
||||
self.natType = natType
|
||||
}
|
||||
|
||||
// 处理和super的协商问题
|
||||
private func handleUDPHoleReady() {
|
||||
guard let udpHole = self.udpHole else {
|
||||
return
|
||||
}
|
||||
|
||||
// 开始探测nat的类型
|
||||
Task {
|
||||
let natType = await self.proberActor.probeNatType(using: udpHole)
|
||||
self.setNatType(natType: natType)
|
||||
SDLLogger.shared.log("[SDLContext] nat_type is: \(natType)")
|
||||
}
|
||||
|
||||
// 注册
|
||||
self.doRegisterSuper()
|
||||
}
|
||||
|
||||
private func sendStunRequest() {
|
||||
guard let sessionToken = self.sessionToken else {
|
||||
return
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user