繁体   English   中英

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

[英]Socket.io swift client getting reconnected multiple time automatically

我正在为我的应用程序使用Socket.IO-Client-Swift','〜> 13.1.0'。 我已成功将我的应用程序与Socket服务器连接,但问题是,它正在多次重新连接。 结果,也许我无法向服务器发射任何东西。 谁能帮我这个?

这是我的代码:

class 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!))")

}

}

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

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

你有没有在调用on事件之前尝试使用socket.off('event')?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM