Tôi mới nhanh chóng. Tôi muốn làm cho trò chuyện cho iphone vì vậy tôi cần phải sử dụng khách hàng sokect. làm thế nào để làm điều này. cho tôi lời khuyên hoặc ví dụ plz. Tôi cố gắng này https://github.com/socketio/socket.io-client-swift nhưng không kết nối và thử mã nàycách sử dụng ổ cắm nhanh (kết nối, gửi và nhận tin nhắn)
let client:TCPClient = TCPClient(addr: "89.236.254.27", port: 9000)
let (success,errmsg) = client.connect(timeout: 1)
if success {
let (success,errmsg) = client.send(str:"Hello World!")
if success {
let data = client.read(1024 * 10)
if let d = data {
if let str = NSString(bytes: d, length: d.count, encoding: NSUTF8StringEncoding) {
print(str)
}
}
} else {
print(errmsg)
}
} else {
print(errmsg)
}
sau khi thay đổi mã này:
override func viewDidLoad() {
super.viewDidLoad()
let qualityOfServiceClass = QOS_CLASS_BACKGROUND
let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
dispatch_async(backgroundQueue, {
let client:TCPClient = TCPClient(addr: "89.236.254.27", port: 9000)
var (success, errmsg)=client.connect(timeout: 1)
if success {
var (isSuccess, errorMessage) = client.send(str: "Hello!")
if success {
let data = client.read(1024 * 4)
if let d = data {
if let str = NSString(bytes: d, length: d.count, encoding: NSUTF8StringEncoding) as? String {
print(str)
}
}
} else {
print(errmsg)
}
} else {
print(errmsg)
}
dispatch_async(dispatch_get_main_queue(), {
() -> Void in
print("This is run on the main queue, after the previous code in outer block")
})
})
}
NSStream hoặc bên thứ ba API. Yêu thích của tôi là [CocoaAsyncSocket] (https://github.com/robbiehanson/CocoaAsyncSocket), Im cũng làm việc trên một phiên bản nhanh chóng bản thân mình, kiểm tra xem nó ra [Swidis] (https://github.com/FarhadNezhad/Swidis) (Still Beta tho) – Xrait
Hãy thử https://github.com/swiftsocket/SwiftSocket Đây là cách dễ sử dụng. Nếu bạn sẽ thử nó và sẽ không hiểu một số điều, viết bình luận ở đây –
alex_p cảm ơn cho câu trả lời, SwiftSocket kết nối nhưng không thể nhận được dữ liệu. plz cho tôi ví dụ –