このチュートリアルに基づいて、iOS アプリと Socketio サーバー間のハンドシェイクを構築しようとしています: Teehan+Lax
私が抱えている問題は、接続が適切に開かれないことです。これは、ハンドシェイク + トークンが適切に生成されていないためだと思います。
func initHandshake() {
let time:NSTimeInterval = NSDate().timeIntervalSince1970 * 1000
println(time)
var timeString = "\(time)"
var formattedTime = timeString.stringByReplacingOccurrencesOfString(".", withString: "-", options: NSStringCompareOptions.LiteralSearch)
println(formattedTime)
var endpoint = "http://\(server)/socket.io/1?t=\(formattedTime)"
println(endpoint)
var handshakeTask:NSURLSessionTask = session!.dataTaskWithURL(NSURL(fileURLWithPath: endpoint)!, completionHandler: { (data:NSData!, response:NSURLResponse!, error:NSError!) in
if !(error != nil) {
let stringData:NSString = NSString(data: data, encoding: NSUTF8StringEncoding)!
let handshakeToken:NSString = stringData.componentsSeparatedByString(":")[0] as NSString
println("HANDSHAKE \(handshakeToken)")
self.socketConnect(handshakeToken)
}
if ((error) != nil) {
println("Didn't connect. Why?")
}
})
handshakeTask.resume()
}
エンドポイントの URL を Socketio が返す文字列と一致させるためにコードで行ったいくつかの試みを見ることができますが、ダイスはありません。未だに繋がりません。
私は以前に Swift を書いたことがないので、このコードが実際に何を取得しようとしているのかについてかなり迷っています。
var handshakeTask:NSURLSessionTask = session!.dataTaskWithURL(NSURL(fileURLWithPath: endpoint)!, completionHandler: { (data:NSData!, response:NSURLResponse!, error:NSError!) in
誰にもアイデアはありますか?