【问题标题】:Basic Socket.io connection with swift使用 swift 的基本 Socket.io 连接
【发布时间】:2015-11-04 14:36:45
【问题描述】:

通过尝试简单的 swift 测试应用程序,我想大致了解 socket.io 和套接字。如果我使用 telnet 打开连接/套接字以寻址 83.145.232.209 8080 并在此之后发送类似 '&okffin;tuusula1 id:RHKL00233&' 的消息服务器端开始向我推送消息。

现在我正在尝试使用 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()
}

但是,我无法从服务器获取连接或任何数据。我对此有一些基本的误解还是我只是配置错误的客户端?

更新:

阅读更多关于 sockets 和 socket.io 的内容后,我可以回答我自己的问题,说我对 socket.io 有根本的误解。 Socket.io 仅适用于基于 engine.io 构建的应用程序通过 Web (http) 进行通信。

我需要和我的示例要求的是基于 tcp 的“常规”套接字,我发现 GCDAsyncSocket 非常适合这项工作。

【问题讨论】:

    标签: swift sockets socket.io


    【解决方案1】:

    请试试这个对我有用。

     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)")}
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-15
      • 1970-01-01
      • 2018-07-11
      • 2021-03-31
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2018-07-19
      相关资源
      最近更新 更多