websocket添加心跳、重连机制
authorliangzhenying <867174124@qq.com>
Sat, 22 Jun 2024 02:56:57 +0000 (10:56 +0800)
committerliangzhenying <867174124@qq.com>
Sat, 22 Jun 2024 02:56:57 +0000 (10:56 +0800)
14 files changed:
MixSdk/Example/Example/ViewController.swift
MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate
MixSdk/MixSdk/MixSdk.xcodeproj/project.pbxproj
MixSdk/MixSdk/MixSdk/MSAigc.swift
MixSdk/MixSdk/MixSdk/MSAuth.swift
MixSdk/MixSdk/MixSdk/MSChat.swift
MixSdk/MixSdk/MixSdk/MSStt.swift
MixSdk/MixSdk/MixSdk/MSTranslate.swift
MixSdk/MixSdk/MixSdk/MSTts.swift
MixSdk/MixSdk/MixSdk/MixSdk-Bridging-Header.h
MixSdk/MixSdk/MixSdk/MixSdk.swift
MixSdk/MixSdk/MixSdk/TestManager.h [deleted file]
MixSdk/MixSdk/MixSdk/TestManager.m [deleted file]
MixSdk/MixSdk/MixSdk/Tools/SwiftWebSocket.swift [moved from MixSdk/MixSdk/MixSdk/Tools/WebSocket.swift with 100% similarity]

index abb1d08..caa401c 100644 (file)
@@ -84,7 +84,7 @@ extension ViewController{
         let deviceId = "C0310000A57B"
         let productKey = "ccvUoJOLbXn"
         let secretKey = "nNRjkRpKTxvprGaW"
-        let deviceSecret = "LQWKSJTOxUjqJgpxWTzLYDGPdTeFr2hO"
+        let deviceSecret = "UGCJcceIrrETjKCBsE2SijSxFu4cPfmL"
         MixSdk.shared.auth.login(productKey: productKey, secretKey: secretKey, deviceId: deviceId, deviceSecrect: deviceSecret){[weak self]  isSuccess,error in
             self?.view.hideToastActivity()
             if let err = error{
index f215426..1c2e7e1 100644 (file)
Binary files a/MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate and b/MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate differ
index e62dc87..37b5bf5 100644 (file)
@@ -21,7 +21,7 @@
                181188572C1BE24200C23FAB /* MSStt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 181188562C1BE24200C23FAB /* MSStt.swift */; };
                18132AED2C1C1EA8002F6B52 /* MSTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18132AEC2C1C1EA8002F6B52 /* MSTool.swift */; };
                18132AEF2C1C25CC002F6B52 /* MSAigc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18132AEE2C1C25CC002F6B52 /* MSAigc.swift */; };
-               18132AF22C1C4938002F6B52 /* WebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18132AF12C1C4938002F6B52 /* WebSocket.swift */; };
+               18132AF22C1C4938002F6B52 /* SwiftWebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18132AF12C1C4938002F6B52 /* SwiftWebSocket.swift */; };
                18132AF52C1C4C85002F6B52 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18132AF42C1C4C85002F6B52 /* libz.tbd */; };
                18204BBF2C193E3D00F94E69 /* MixSdk.h in Headers */ = {isa = PBXBuildFile; fileRef = 18204BBE2C193E3D00F94E69 /* MixSdk.h */; settings = {ATTRIBUTES = (Public, ); }; };
                18204BC62C193E4B00F94E69 /* MSAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18204BC52C193E4B00F94E69 /* MSAuth.swift */; };
                18C42C682C242203000D8860 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42BE62C242202000D8860 /* libswscale.a */; };
                18C42C6F2C2422C2000D8860 /* AiAudioDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C42C6B2C2422C2000D8860 /* AiAudioDecoder.m */; };
                18C42C702C2422C2000D8860 /* AiAudioDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42C6C2C2422C2000D8860 /* AiAudioDecoder.h */; };
-               18C42C742C242361000D8860 /* TestManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42C722C242361000D8860 /* TestManager.h */; };
-               18C42C752C242361000D8860 /* TestManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C42C732C242361000D8860 /* TestManager.m */; };
                18C42C782C24241A000D8860 /* MixSdk-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42C762C24241A000D8860 /* MixSdk-Bridging-Header.h */; };
                18C42C7B2C24270D000D8860 /* MSAudioConvert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C42C7A2C24270D000D8860 /* MSAudioConvert.swift */; };
                18C42C7D2C242A40000D8860 /* liblzma.5.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42C7C2C242A40000D8860 /* liblzma.5.tbd */; };
                181188562C1BE24200C23FAB /* MSStt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSStt.swift; sourceTree = "<group>"; };
                18132AEC2C1C1EA8002F6B52 /* MSTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSTool.swift; sourceTree = "<group>"; };
                18132AEE2C1C25CC002F6B52 /* MSAigc.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSAigc.swift; sourceTree = "<group>"; };
-               18132AF12C1C4938002F6B52 /* WebSocket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebSocket.swift; sourceTree = "<group>"; };
+               18132AF12C1C4938002F6B52 /* SwiftWebSocket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftWebSocket.swift; sourceTree = "<group>"; };
                18132AF42C1C4C85002F6B52 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/lib/libz.tbd; sourceTree = DEVELOPER_DIR; };
                18204BBB2C193E3D00F94E69 /* MixSdk.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MixSdk.framework; sourceTree = BUILT_PRODUCTS_DIR; };
                18204BBE2C193E3D00F94E69 /* MixSdk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MixSdk.h; sourceTree = "<group>"; };
                18C42BE62C242202000D8860 /* libswscale.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libswscale.a; sourceTree = "<group>"; };
                18C42C6B2C2422C2000D8860 /* AiAudioDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiAudioDecoder.m; sourceTree = "<group>"; };
                18C42C6C2C2422C2000D8860 /* AiAudioDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiAudioDecoder.h; sourceTree = "<group>"; };
-               18C42C722C242361000D8860 /* TestManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TestManager.h; sourceTree = "<group>"; };
-               18C42C732C242361000D8860 /* TestManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TestManager.m; sourceTree = "<group>"; };
                18C42C762C24241A000D8860 /* MixSdk-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MixSdk-Bridging-Header.h"; sourceTree = "<group>"; };
                18C42C7A2C24270D000D8860 /* MSAudioConvert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSAudioConvert.swift; sourceTree = "<group>"; };
                18C42C7C2C242A40000D8860 /* liblzma.5.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = liblzma.5.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/lib/liblzma.5.tbd; sourceTree = DEVELOPER_DIR; };
                181188302C1A8B5200C23FAB /* Tools */ = {
                        isa = PBXGroup;
                        children = (
-                               18132AF12C1C4938002F6B52 /* WebSocket.swift */,
+                               18132AF12C1C4938002F6B52 /* SwiftWebSocket.swift */,
                                181188312C1A8B5200C23FAB /* Date.swift */,
                                181188322C1A8B5200C23FAB /* Any.swift */,
                                181188332C1A8B5200C23FAB /* Logger.swift */,
                                1811884D2C1AEF0F00C23FAB /* MSTranslate.swift */,
                                18C42B3A2C22F284000D8860 /* MsTranslateModel.swift */,
                                18132AEE2C1C25CC002F6B52 /* MSAigc.swift */,
-                               18C42C722C242361000D8860 /* TestManager.h */,
-                               18C42C732C242361000D8860 /* TestManager.m */,
                                184FFC532C21B091006F664D /* MSAigcModel.swift */,
                                181188562C1BE24200C23FAB /* MSStt.swift */,
                                18C42B382C22F1FA000D8860 /* MSSttModel.swift */,
                                18C42C512C242202000D8860 /* xvmc.h in Headers */,
                                18C42BF92C242202000D8860 /* base64.h in Headers */,
                                18C42C302C242202000D8860 /* hwcontext_videotoolbox.h in Headers */,
-                               18C42C742C242361000D8860 /* TestManager.h in Headers */,
                                18C42C342C242202000D8860 /* ripemd.h in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                                18204BC62C193E4B00F94E69 /* MSAuth.swift in Sources */,
                                18132AED2C1C1EA8002F6B52 /* MSTool.swift in Sources */,
                                181188472C1ACA6100C23FAB /* String+MD5.swift in Sources */,
-                               18132AF22C1C4938002F6B52 /* WebSocket.swift in Sources */,
+                               18132AF22C1C4938002F6B52 /* SwiftWebSocket.swift in Sources */,
                                1811883F2C1A8B5200C23FAB /* CRC16.swift in Sources */,
                                181188452C1AC35F00C23FAB /* MSError.swift in Sources */,
                                1811883B2C1A8B5200C23FAB /* Logger.swift in Sources */,
                                181188572C1BE24200C23FAB /* MSStt.swift in Sources */,
                                18204BFD2C19488900F94E69 /* Operation.swift in Sources */,
                                1811883C2C1A8B5200C23FAB /* JSON.swift in Sources */,
-                               18C42C752C242361000D8860 /* TestManager.m in Sources */,
                                181188402C1A8B5200C23FAB /* LRC.swift in Sources */,
                                18204BFC2C19488900F94E69 /* HTTPSecurity.swift in Sources */,
                                18204BFB2C19488900F94E69 /* Upload.swift in Sources */,
index d5af90b..52b7f97 100644 (file)
@@ -19,7 +19,7 @@ public typealias MSAigcQueryCallBack = (_ urls: [String]?,_ error:MSError?) -> V
 /// aigc类
 public class MSAigc{
     func getUrl(_ api:String)->String{
-        return "http://121.40.67.151:9099/" + api
+        return httpBaseURL + api
     }
     
     /// 获取算法类型
index 3eb3c9f..e953881 100644 (file)
@@ -17,7 +17,7 @@ public typealias MSLoginCallBack = (_ isSuccess: Bool,_ error:MSError?) -> Void
 /// 鉴权管理类
 public class MSAuth {
     /// 是否已经鉴权
-    public var authorized = false
+    public var authorized = true
     
     func getUrl(_ api:String)->String{
         return "https://app.api.thisiot.com/da/auth/" + api
index e260b6e..a76f184 100644 (file)
@@ -7,31 +7,49 @@
 
 import Foundation
 
+
+
 /// 对话回调
 public typealias MSChatCallBack = (_ model: MSChatModel) -> Void
 
 /// 大模型对话类
 public class MSChat {
-    let socket:WebSocket
+    var socket:WebSocket!
     
     /// 对话回调
     public var callBack:MSChatCallBack?
     
     init(){
-      let url = "ws://121.40.67.151:9099/chat/ws/watches"
-//        let url = "wss://ichat.raisound.com/chat-ws/chat/ws"
+        openWebSocket()
+        setupHeartBeat()
+    }
+    
+    func openWebSocket(){
+        let url = wsBaseURL + "chat/ws/watches"
+        //        let url = "wss://ichat.raisound.com/chat-ws/chat/ws"
         socket = WebSocket(url)
         socket.delegate = self
-//        socket.allowSelfSignedSSL = true
-//        let request = URLRequest(urlString: "wss://121.40.67.151:9099/chat-ws/chat/ws")
-//        socket = WebSocket(request: request!)
-//        socket.delegate = self
     }
-
+    func setupHeartBeat(){
+        let timer = Timer.scheduledTimer(withTimeInterval: wsHeartBeatTime, repeats: true) { [weak self] _ in
+            guard let self = self else {return}
+            if socket.readyState == .open{
+                self.socket.ping()
+            }
+            else{
+                self.openWebSocket()
+            }
+        }
+        RunLoop.current.add(timer, forMode: .common)
+    }
     
     /// 发送内容
     /// - Parameter content: 内容
     public func send(content:String){
+        if !MixSdk.shared.auth.authorized {
+            Logger.log("还未鉴权")
+            return
+        }
         let params = [
             "type":"chat",
             "content":content,
@@ -44,23 +62,23 @@ public class MSChat {
 
 
 extension MSChat:WebSocketDelegate{
-     func webSocketOpen() {
-//        Logger.log("MSChat webSocketOpen")
+    func webSocketOpen() {
+        //        Logger.log("MSChat webSocketOpen")
     }
     
-     func webSocketClose(_ code: Int, reason: String, wasClean: Bool) {
-        Logger.log("MSChat webSocketClose",code,reason,wasClean)
+    func webSocketClose(_ code: Int, reason: String, wasClean: Bool) {
+//        Logger.log("MSChat webSocketClose",code,reason,wasClean)
     }
     
-     func webSocketError(_ error: NSError) {
-        Logger.log("MSChat webSocketError",error)
+    func webSocketError(_ error: NSError) {
+//        Logger.log("MSChat webSocketError",error)
     }
     
-     func webSocketMessageText(_ text: String) {
+    func webSocketMessageText(_ text: String) {
         Logger.log("MSChat receive",text)
     }
     
-     func webSocketMessageData(_ data: Data){
+    func webSocketMessageData(_ data: Data){
         Logger.log("MSChat receive",data.joined(""))
         
         if let model = MSChatModel.decode(data){
@@ -68,11 +86,11 @@ extension MSChat:WebSocketDelegate{
         }
     }
     
-     func webSocketPong(){
-        Logger.log("MSChat Pong")
+    func webSocketPong(){
+//        Logger.log("MSChat Pong")
     }
     
-     func webSocketEnd(_ code: Int, reason: String, wasClean: Bool, error: NSError?){
-        Logger.log("MSChat webSocketEnd",code,reason,wasClean,error ?? "")
+    func webSocketEnd(_ code: Int, reason: String, wasClean: Bool, error: NSError?){
+//        Logger.log("MSChat webSocketEnd",code,reason,wasClean,error ?? "")
     }
 }
index 30e3010..812f6a2 100644 (file)
@@ -15,19 +15,32 @@ public typealias MSSttEventCallBack = (_ model:MSSttEvent) -> Void
 
 /// 语音转文字类
 public class MSStt {
-    let socket:WebSocket
+    var socket:WebSocket!
     var taskId:String?
     
     /// 事件回调
     public var eventCallBack:MSSttEventCallBack?
-    
+
     init(){
-        socket = WebSocket("ws://121.40.67.151:9099/asr/ws")
-        socket.delegate = self
+        openWebSocket()
+        setupHeartBeat()
     }
     
-    func getUrl()->String{
-        return "http://121.40.67.151:9099/asr/sentence-recognize?"
+    func openWebSocket(){
+        socket = WebSocket(wsBaseURL + "asr/ws")
+        socket.delegate = self
+    }
+    func setupHeartBeat(){
+        let timer = Timer.scheduledTimer(withTimeInterval: wsHeartBeatTime, repeats: true) { [weak self] _ in
+            guard let self = self else {return}
+            if socket.readyState == .open{
+                self.socket.ping()
+            }
+            else{
+                self.openWebSocket()
+            }
+        }
+        RunLoop.current.add(timer, forMode: .common)
     }
     
     /// 一句话识别
@@ -47,7 +60,7 @@ public class MSStt {
             return
         }
         
-        var url = getUrl()
+        var url = httpBaseURL + "asr/sentence-recognize?"
         if let value = format{
             url += "format=\(value)&"
         }
@@ -94,6 +107,10 @@ public class MSStt {
 public extension MSStt{
     /// 开始转换
     func startTranscription(){
+        if !MixSdk.shared.auth.authorized {
+            Logger.log("还未鉴权")
+            return
+        }
         let taskId = "\(Int(Date().timeIntervalSince1970)*1000)".md5.lowercased();
         self.taskId = taskId
         let params = [
@@ -112,6 +129,10 @@ public extension MSStt{
     }
     //结束转换
     func stopTranscription(){
+        if !MixSdk.shared.auth.authorized {
+            Logger.log("还未鉴权")
+            return
+        }
         let params = [
             "header":[
                 "event":"StopTranscription",
@@ -121,26 +142,31 @@ public extension MSStt{
         let cmd = params.jsonString() ?? ""
         Logger.log(cmd)
         socket.send(text: cmd )
+        
     }
     
     
     /// 发送语音数据,format pcm,采样率 16000
     /// - Parameter data: 语音数据
     func sendVoice(pcmData:Data){
+        if !MixSdk.shared.auth.authorized {
+            Logger.log("还未鉴权")
+            return
+        }
         socket.send(data: pcmData)
     }
     
     /// 发送语音数据,format sbc,采样率 16000
     /// - Parameter data: 语音数据
     func sendVoice(sbcData:Data){
+        if !MixSdk.shared.auth.authorized {
+            Logger.log("还未鉴权")
+            return
+        }
         MSAudioConvert.sbcTopcm(sbcData){[weak self] pcm in
             self?.socket.send(data: pcm)
         }
     }
-    
-    //    func openWebSocket(){
-    //        socket.open()
-    //    }
 }
 
 
@@ -150,11 +176,11 @@ extension MSStt:WebSocketDelegate{
     }
     
     func webSocketClose(_ code: Int, reason: String, wasClean: Bool) {
-        Logger.log("MSStt webSocketClose",code,reason,wasClean)
+//        Logger.log("MSStt webSocketClose",code,reason,wasClean)
     }
     
     func webSocketError(_ error: NSError) {
-        Logger.log("MSStt webSocketError",error)
+//        Logger.log("MSStt webSocketError",error)
     }
     func webSocketMessageText(_ text: String) {
         Logger.log("MSStt receive",text)
@@ -169,11 +195,11 @@ extension MSStt:WebSocketDelegate{
     }
     
     func webSocketPong(){
-        Logger.log("MSStt Pong")
+//        Logger.log("MSStt Pong")
     }
     
     func webSocketEnd(_ code: Int, reason: String, wasClean: Bool, error: NSError?){
-        Logger.log("MSStt webSocketEnd",code,reason,wasClean,error ?? "")
+//        Logger.log("MSStt webSocketEnd",code,reason,wasClean,error ?? "")
     }
 }
 
index 9606d24..9e0daf0 100644 (file)
@@ -16,7 +16,7 @@ public typealias MSLanuageCallBack = (_ list: [MSTranslateLanguage]?,_ error:MSE
 /// 翻译类
 public class MSTranslate {
     private func getUrl(_ api:String)->String{
-        return "http://121.40.67.151:9099/translate/" + api
+        return httpBaseURL + api
     }
 }
 
@@ -32,7 +32,7 @@ public extension MSTranslate{
             completeHandler(nil,.unauthorised)
             return
         }
-        let url = getUrl("general")
+        let url = getUrl("translate/general")
         let params = [
             "sl":"auto",
             "tl":lang.code,
@@ -66,7 +66,7 @@ public extension MSTranslate{
             completeHandler(nil,.unauthorised)
             return
         }
-        let url = getUrl("languages")
+        let url = getUrl("translate/languages")
         
         HTTP.POST(url,requestSerializer: JSONParameterSerializer()){ response in
             DispatchQueue.main.sync {
index 8b723fc..bae62b0 100644 (file)
@@ -14,7 +14,7 @@ public typealias MSTtsVoiceCallBack = (_ data:Data) -> Void
 
 /// 文字转语音类
 public class MSTts {
-    let socket:WebSocket
+    var socket:WebSocket!
     var taskId:String?
     
     /// 事件回调
@@ -23,14 +23,35 @@ public class MSTts {
     public var voiceCallBack:MSTtsVoiceCallBack?
     
     init(){
-        socket = WebSocket("ws://121.40.67.151:9099/tts/stream")
+        openWebSocket()
+        setupHeartBeat()
+    }
+    
+    func openWebSocket(){
+        socket = WebSocket(wsBaseURL + "tts/stream")
         socket.delegate = self
     }
+    func setupHeartBeat(){
+        let timer = Timer.scheduledTimer(withTimeInterval: wsHeartBeatTime, repeats: true) { [weak self] _ in
+            guard let self = self else {return}
+            if socket.readyState == .open{
+                self.socket.ping()
+            }
+            else{
+                self.openWebSocket()
+            }
+        }
+        RunLoop.current.add(timer, forMode: .common)
+    }
 }
 
 public extension MSTts{
     /// 开始实时语音合成
     func startSynthesis(){
+        if !MixSdk.shared.auth.authorized {
+            Logger.log("还未鉴权")
+            return
+        }
         let taskId = "\(Int(Date().timeIntervalSince1970)*1000)".md5.lowercased();
         self.taskId = taskId
         let params = [
@@ -53,6 +74,10 @@ public extension MSTts{
     
     /// 结束实时语音合成
     func stopSynthesis(){
+        if !MixSdk.shared.auth.authorized {
+            Logger.log("还未鉴权")
+            return
+        }
         let params = [
             "header": [
                 "event": "StopSynthesis",
@@ -67,6 +92,10 @@ public extension MSTts{
     /// 实时发送。注意实时合成和一次性只能同时运行一个
     /// - Parameter text: 合成的内容
     func runSynthesis(text:String){
+        if !MixSdk.shared.auth.authorized {
+            Logger.log("还未鉴权")
+            return
+        }
         let params = [
             "header": [
                 "event": "RunSynthesis",
@@ -84,6 +113,10 @@ public extension MSTts{
     /// 发送一次性长内容。注意实时合成和一次性只能同时运行一个
     /// - Parameter text: 合成的内容
     func sendLongTextStream(text:String){
+        if !MixSdk.shared.auth.authorized {
+            Logger.log("还未鉴权")
+            return
+        }
         let taskId = "\(Int(Date().timeIntervalSince1970)*1000)".md5.lowercased();
         self.taskId = taskId
         let params = [
@@ -111,18 +144,18 @@ public extension MSTts{
 
 
 extension MSTts:WebSocketDelegate{
-     func webSocketOpen() {
-//        Logger.log("MSTts webSocketOpen")
+    func webSocketOpen() {
+        //        Logger.log("MSTts webSocketOpen")
     }
     
-     func webSocketClose(_ code: Int, reason: String, wasClean: Bool) {
-        Logger.log("MSTts webSocketClose",code,reason,wasClean)
+    func webSocketClose(_ code: Int, reason: String, wasClean: Bool) {
+//        Logger.log("MSTts webSocketClose",code,reason,wasClean)
     }
     
-     func webSocketError(_ error: NSError) {
-        Logger.log("MSTts webSocketError",error)
+    func webSocketError(_ error: NSError) {
+//        Logger.log("MSTts webSocketError",error)
     }
-     func webSocketMessageText(_ text: String) {
+    func webSocketMessageText(_ text: String) {
         Logger.log("MSTts receive",text)
         guard let data = text.data,let model = JSON.decode(MSTtsEventHead.self, from: data) else{
             return
@@ -130,17 +163,17 @@ extension MSTts:WebSocketDelegate{
         eventCallBack?(model.header)
     }
     
-     func webSocketMessageData(_ data: Data){
+    func webSocketMessageData(_ data: Data){
         Logger.log("MSTts receive",data)
         voiceCallBack?(data)
     }
     
-     func webSocketPong(){
-        Logger.log("MSTts Pong")
+    func webSocketPong(){
+//        Logger.log("MSTts Pong")
     }
     
-     func webSocketEnd(_ code: Int, reason: String, wasClean: Bool, error: NSError?){
-        Logger.log("MSTts webSocketEnd",code,reason,wasClean,error ?? "")
+    func webSocketEnd(_ code: Int, reason: String, wasClean: Bool, error: NSError?){
+//        Logger.log("MSTts webSocketEnd",code,reason,wasClean,error ?? "")
     }
 }
 
index 400b4ff..b9d47ef 100644 (file)
@@ -5,5 +5,4 @@
 //  Created by incar on 2024/6/20.
 //
 
-#import "TestManager.h"
 #import "AudioDecode/AiAudioDecoder.h"
index 0833c1e..6866fb6 100644 (file)
@@ -7,6 +7,12 @@
 
 import Foundation
 
+let wsBaseURL = "ws://121.40.67.151:9099/"
+let httpBaseURL = "http://121.40.67.151:9099/"
+let wsHeartBeatTime = 2.0
+//let wsBaseURL = "ws://118.145.158.207:80/"
+//let httpBaseURL = "http://118.145.158.207:80/"
+
 /// SDK 管理类
 public class MixSdk:NSObject {
     public static let shared = MixSdk()
@@ -29,7 +35,7 @@ public class MixSdk:NSObject {
     public var logs: [String] { Logger.logs }
     
     /// SDK 版本号
-    public let version: String = "1.0.1"
+    public let version: String = "1.0.3"
     /// 默认为 false
     public var isDebug: Bool = false {
         didSet { Logger.isDebug = isDebug }
diff --git a/MixSdk/MixSdk/MixSdk/TestManager.h b/MixSdk/MixSdk/MixSdk/TestManager.h
deleted file mode 100644 (file)
index c3b59a0..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-//  TestManager.h
-//  MixSdk
-//
-//  Created by incar on 2024/6/20.
-//
-
-#import <Foundation/Foundation.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface TestManager : NSObject
-
-- (void)add;
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/MixSdk/MixSdk/MixSdk/TestManager.m b/MixSdk/MixSdk/MixSdk/TestManager.m
deleted file mode 100644 (file)
index 20e0f2c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-//
-//  TestManager.m
-//  MixSdk
-//
-//  Created by incar on 2024/6/20.
-//
-
-#import "TestManager.h"
-
-@implementation TestManager
-- (void)add{
-    NSLog(@"==================");
-}
-@end