Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Socket.io swift客户端将自动多次重新连接_Ios_Swift_Socket.io - Fatal编程技术网

Ios Socket.io swift客户端将自动多次重新连接

Ios Socket.io swift客户端将自动多次重新连接,ios,swift,socket.io,Ios,Swift,Socket.io,我正在为我的应用程序使用Socket.IO客户端Swift',“~>13.1.0”。我已成功地将我的应用程序与Socket server连接,但问题是,它正在多次重新连接。因此,可能我无法向服务器发送任何内容。有人能帮我吗 这是我的代码: 类SocketIOManager:NSObject{ var locationReceiverDelegate: LocationReceiverDelegate? static let shared = SocketIOManager() let manag

我正在为我的应用程序使用Socket.IO客户端Swift',“~>13.1.0”。我已成功地将我的应用程序与Socket server连接,但问题是,它正在多次重新连接。因此,可能我无法向服务器发送任何内容。有人能帮我吗

这是我的代码:

类SocketIOManager:NSObject{

var locationReceiverDelegate: LocationReceiverDelegate?
static let shared = SocketIOManager()
let manager = SocketManager(socketURL: URL(string: "server-url")!, config: [.log(true), .connectParams(["token" : "token-string"])])

var socket : SocketIOClient!


override init() {
    super.init()

    socket = manager.defaultSocket
    self.connectSocket() 
}

func connectSocket() {

    socket.on(clientEvent: .connect) {data, ack in
        print("socket connected")
    }

    self.socket.on("connected") { ( dataArray, ack)  in
        print("dataArray",dataArray)
    }

    self.socket.on("error") { (data, ack) in
        print("error-->", data)
    }

    self.socket.on("location::share.error") { (data, ack) in
        print("location::share.error-->", data)
    }


    self.socket.on("location::receive") { (data, ack) in

        print("location::receive-->", data[0])

    }

}

func establishConnection() {
    print("in connect socket")
    socket.connect()
}

func disconnectSocket() {
    socket.disconnect()
    print("in disconnect socket")
}

func updateCurrentLocation(myLocation: CLLocation) {

    print(myLocation.coordinate.latitude)
    print(myLocation.coordinate.longitude)
    print(myLocation.course)


    let data : Dictionary<String,Any> = [
        "latitude": myLocation.coordinate.latitude,
        "longitude": myLocation.coordinate.latitude,
        "angle": myLocation.course
    ]
    let jsonData = try! JSONSerialization.data(withJSONObject: data)
    print(jsonData)
    let jsonString = NSString(data: jsonData, encoding: String.Encoding.utf8.rawValue)

    print((String(describing: jsonString!)))
    socket.emit("location::share", "\(String(describing: jsonString!))")

}
var locationReceiverDelegate:locationReceiverDelegate?
静态let shared=SocketIOManager()
let manager=SocketManager(socketURL:URL(字符串:“服务器URL”)!,配置:[.log(true),.connectParams([“令牌”:“令牌字符串”)]))
变量套接字:SocketIOClient!
重写init(){
super.init()
socket=manager.defaultSocket
self.connectSocket()
}
func connectSocket(){
socket.on(clientEvent:.connect){data,确认在
打印(“插座连接”)
}
中的self.socket.on(“已连接”){(dataArray,ack)
打印(“dataArray”,dataArray)
}
中的self.socket.on(“错误”){(数据,确认)
打印(“错误-->”,数据)
}
中的self.socket.on(“location::share.error”){(数据,ack)
打印(“位置::共享。错误-->”,数据)
}
self.socket.on(“location::receive”){(data,ack)在
打印(“位置::接收-->”,数据[0])
}
}
func连接(){
打印(“在连接插座中”)
socket.connect()
}
func disconnectSocket(){
socket.disconnect()
打印(“断开插座中”)
}
func UPDATECURENTLOCATION(myLocation:CLLocation){
打印(我的位置、坐标、纬度)
打印(myLocation.坐标.经度)
打印(myLocation.course)
let数据:字典=[
“纬度”:myLocation.coordinate.latitude,
“经度”:myLocation.coordinate.latitude,
“角度”:myLocation.course
]
让jsonData=try!JSONSerialization.data(带jsonobject:data)
打印(jsonData)
让jsonString=NSString(数据:jsonData,编码:String.encoding.utf8.rawValue)
打印((字符串(描述:jsonString!))
emit(“location::share”,“\(String(description:jsonString!)))
}

}

在调用打开事件之前,您是否尝试过使用socket.off('event')

socket.emit(Your_Key, with: [Your_Data])

也许这就是你的服务器寻找数据的方式!!(发出数据的数组)。在发送数据之前检查套接字状态

请显示使用SocketIOManager的代码