简体   繁体   English

Swift 5:Socket IO 集成和发送数据

[英]Swift 5: Socket IO integration and send data

I am very new to Socket IO.我对 Socket IO 很陌生。 My requirement is to connect to a socket with URL and join a specific room with some unique identifier string value like "join_id".我的要求是使用 URL 连接到一个套接字,并使用一些唯一标识符字符串值(如“join_id”)加入特定房间。 Once I successfully joined that room once successfully joined in that room I need to send some JSON to that room and wait for an acknowledgement.一旦我成功加入那个房间,一旦成功加入那个房间,我需要向那个房间发送一些 JSON 并等待确认。

var manager = SocketManager(socketURL: URL(string: myURL),: config. [,log(true). .compress ]) var manager = SocketManager(socketURL: URL(string: myURL),: config. [,log(true). .compress ])

    let socket = manager.defaultSocket
    socket.on(clientEvent: .connect){(data,ack) in
        print("connected")
        socket.emit("test", "Hi Server!")
    }

And listener is,听者是,

    socket.on("testresult") { [weak self] (data,ack) in
        print(data)
        print(data.description)
    }
    socket.connect()

As per the server team, I need to join a room by passing a string value (join_id).根据服务器团队的说法,我需要通过传递一个字符串值(join_id)来加入一个房间。 And once I got successful acknowledgement I need to send JSON and wait for the acknowledgement for confirmation on data receiving.一旦我得到成功的确认,我需要发送 JSON 并等待确认数据接收确认。

Join Room specific press on emit data加入 Room 特定新闻发布数据

self.socketIOClient.emit("join_id", with: "154") /*Like Random id generate*/
let jsonDic = ["room":driver_id,"userId":"\(userID)",
                "quoteId":quote_id,"isRequest":"1"] /* Json Data send to server */
self.socketIOClient.emit("sendRequestToDriver",jsonDic)

Get json Respone获取 json 响应

let manager:SocketManager!
let socketIOClient: SocketIOClient!
manager = SocketManager(socketURL: URL(string: ServerAPI.SocketURL)!, 
     config: [.log(true), .compress])
socketIOClient = manager.defaultSocket
 self.socketIOClient?.on("orderRequestUpdateByDriver") { ( dataArray, ack) -> Void in
 let dict = dataArray[0] as? NSDictionary ?? [:]
  Print(dict)
}
socketIOClient.on(clientEvent: .error) { (data, eck) in
    print(data)
    print("socket error")
 }
    
socketIOClient.on(clientEvent: .disconnect) { (data, eck) in
    print(data)
    print("socket disconnect")
 }
    
 socketIOClient.on(clientEvent: SocketClientEvent.reconnect) { (data, eck) in
     print(data)
     print("socket reconnect")
 }
socketIOClient.connect()

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

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