与swift的基本Socket.io连接

时间:2015-11-04 14:36:45

标签: swift sockets socket.io

尝试通过尝试简单的快速测试应用程序来包围socket.io和套接字。如果我用 telnet 打开连接/套接字以解决 83.145.232.209 8080 ,之后发送消息,如'& okffin; tuusula1 id:RHKL00233&'服务器端开始向我发送消息。

现在我正试图在swift中使用socket.IO来解决这个问题。我尝试过简单的测试。

@IBAction func liveTest(sender: NSButton) {
     socket = SocketIOClient(socketURL: "83.145.232.209:8080", options: [.Log(true)])
     socket!.onAny {print("Got event: \($0.event), with items: \($0.items)")}
     socket!.emit("&okffin;tuusula1 id:RHKL00233&", "")
     socket!.connect()
}

然而,我无法通过此方式从服务器获取连接或任何数据。我是否对此有一些基本的误解,或者我只是错误地配置了客户端?

更新

在阅读了有关套接字和socket.io的更多信息后,我可以回答我自己的问题,说我对socket.io有一些根本的误解。 Socket.io仅用于通过web(http)进行通信,适用于在engine.io上构建的应用程序。

我需要的和我的例子是tcp上的'常规'套接字,我发现GCDAsyncSocket非常适合这项工作。

1 个答案:

答案 0 :(得分:0)

请尝试一下它为我工作。

 let socket = SocketIOClient(socketURL:NSURL(string:"http://:8080")!, options: [.Log(true), .ForcePolling(true)])

    socket.on("connect")
            {data, ack in
               print("socket connected")
                self.addHandlers()
            }
     socket.connect()

func addHandlers()
    {
        let myJSON : String!
        myJSON = "{\"userKey\":931234567890 \"countryCode\":93\"mobileNo\":1234567890}"
        self.socket.emit("register user step1", myJSON)
        self.socket.onAny {print("Got event: \($0.event), with items: \($0.items)")}

    }