无法在swift中通过Socket.io建立连接

问题描述 投票:0回答:2

我正在使用socket.io框架来快速。我试图通过websockets API连接,我有一个方法,在viewDidLoadViewController调用。我已经全局声明了我的经理和socketClient,我将把以下方法的代码:

private func setupSockets() {
    manager = SocketManager(socketURL: URL(string: "http://kaboom.rksv.net")!, config: [.log(true), .compress])
    socket = SocketIOClient(manager: manager, nsp: "/watch")//manager.defaultSocket
    socket.onAny {print("Got event: \($0.event), with items: \($0.items)")}

        socket.on("data", callback: { (data, ack) in
        print(data)
    })

    socket.on("error", callback: { (data, ack) in
        print(data)
        print(ack)

    })


    socket.on("connect", callback: { (data, ack) in
        print(data)
        print(ack)


        self.socket.emit("ping", [])

    })

    socket.connect()
}

我面临的问题是connect回调没有被调用,因此,我无法发出ping消息。这是日志:

2018-02-18 19:02:20.589406 + 0530 stocks-cake [10965:3662189] LOG SocketIOClient {/ watch}:处理事件:statusChange包含数据:[连接]

2018-02-18 19:02:20.589692 + 0530 stocks-cake [10965:3662189] LOG SocketIOClient {/ watch}:加入名称空间/观看

2018-02-18 19:02:20.589850 + 0530 stocks-cake [10965:3662189] LOG SocketManager:当发动机未打开时尝试连接插座。连

2018-02-18 19:02:20.589916 + 0530 stocks-cake [10965:3662189] LOG SocketManager:添加引擎

2018-02-18 19:02:32.986354 + 0530 stocks-cake [10965:3662271] LOG SocketEngine:启动发动机。服务器:http://kaboom.rksv.net

2018-02-18 19:02:32.988480 + 0530 stock-cake [10965:3662271] LOG SocketEngine:握手

2018-02-18 19:02:32.995078 + 0530 stock-cake [10965:3662271] LOG SocketEnginePolling:做投票GET http://kaboom.rksv.net/socket.io/?transport=polling&b64=1

2018-02-18 19:02:33.197687 + 0530 stock-cake [10965:3662406] LOG SocketEnginePolling:得到了轮询回复

2018-02-18 19:02:33.200976 + 0530 stocks-cake [10965:3662406] LOG SocketEnginePolling:得到民意调查信息:97:0 {“sid”:“4Uf21Mr7_9DGjSXcAASj”,“升级”:[“websocket”],“ pingInterval “:25000,” pingTimeout“:60000}

2018-02-18 19:02:33.208867 + 0530 stocks-cake [10965:3662406] LOG SocketEngine:得到消息:0 {“sid”:“4Uf21Mr7_9DGjSXcAASj”,“升级”:[“websocket”],“pingInterval”: 25000, “pingTimeout”:60000}

2018-02-18 19:02:33.226824 + 0530 stocks-cake [10965:3662189] LOG SocketManager:引擎打开连接

2018-02-18 19:02:33.226894 + 0530 stock-cake [10965:3662406] LOG SocketEnginePolling:做投票GET http://kaboom.rksv.net/socket.io/?transport=polling&b64=1&sid=4Uf21Mr7_9DGjSXcAASj

2018-02-18 19:02:33.227367 + 0530 stocks-cake [10965:3662406] LOG SocketEngine:写入民意调查:有数据:false

2018-02-18 19:02:33.227447 + 0530 stocks-cake [10965:3662406] LOG SocketEnginePolling:发送民意调查:类型:2

2018-02-18 19:02:33.230935 + 0530 stocks-cake [10965:3662406] LOG SocketEnginePolling:创建POST字符串:1:2

2018-02-18 19:02:33.231392 + 0530 stock-cake [10965:3662406] LOG SocketEnginePolling:POSTing

2018-02-18 19:02:33.231510 + 0530 stock-cake [10965:3662406] LOG SocketEnginePolling:做投票POST http://kaboom.rksv.net/socket.io/?transport=polling&b64=1&sid=4Uf21Mr7_9DGjSXcAASj

2018-02-18 19:02:33.280857 + 0530 stocks-cake [10965:3662406] LOG SocketEnginePolling:得到了轮询回复

2018-02-18 19:02:33.281066 + 0530 stocks-cake [10965:3662406] LOG SocketEnginePolling:得到民意调查信息:2:40

2018-02-18 19:02:33.281933 + 0530 stock-cake [10965:3662406] LOG SocketEngine:得到的消息:40

2018-02-18 19:02:33.282346 + 0530 stock-cake [10965:3662189] LOG SocketParser:解析0

2018-02-18 19:02:33.283167 + 0530 stocks-cake [10965:3662189] LOG SocketParser:解码后的数据包为:SocketPacket {type:0;数据:[]; id:-1;占位符:0; nsp:/}

2018-02-18 19:02:33.283195 + 0530 stock-cake [10965:3662406] LOG SocketEnginePolling:做投票GET http://kaboom.rksv.net/socket.io/?transport=polling&b64=1&sid=4Uf21Mr7_9DGjSXcAASj

2018-02-18 19:02:33.330123 + 0530 stocks-cake [10965:3662271] LOG SocketEngineWebSocket:发送ws:probe类型:2

2018-02-18 19:02:33.340044 + 0530 stock-cake [10965:3662407] LOG SocketEnginePolling:得到了轮询回复

2018-02-18 19:02:33.340351 + 0530 stocks-cake [10965:3662407] LOG SocketEnginePolling:得到民意调查信息:1:3

2018-02-18 19:02:33.340621 + 0530 stock-cake [10965:3662407] LOG SocketEngine:得到的消息:3

2018-02-18 19:02:33.341829 + 0530 stock-cake [10965:3662407] LOG SocketEnginePolling:做投票GET http://kaboom.rksv.net/socket.io/?transport=polling&b64=1&sid=4Uf21Mr7_9DGjSXcAASj

2018-02-18 19:02:33.378473 + 0530 stock-cake [10965:3662407] LOG SocketEngine:得到的消息:3probe

2018-02-18 19:02:33.379059 + 0530 stocks-cake [10965:3662407] LOG SocketEngine:收到探测响应,应该升级到WebSockets

2018-02-18 19:02:33.379252 + 0530 stocks-cake [10965:3662407] LOG SocketEngine:升级到WebSockets的传输

2018-02-18 19:02:33.379368 + 0530 stocks-cake [10965:3662407] LOG SocketEnginePolling:发送民意调查:类型:6

2018-02-18 19:02:33.379511 + 0530 stocks-cake [10965:3662407] LOG SocketEnginePolling:创建的POST字符串:1:6

2018-02-18 19:02:33.379968 + 0530 stock-cake [10965:3662407] LOG SocketEnginePolling:POSTing

2018-02-18 19:02:33.477785 + 0530 stocks-cake [10965:3662407] LOG SocketEnginePolling:得到了投票回复

2018-02-18 19:02:33.478016 + 0530 stocks-cake [10965:3662407] LOG SocketEnginePolling:得到了民意调查信息:1:6

2018-02-18 19:02:33.478639 + 0530 stocks-cake [10965:3662407] LOG SocketEngine:得到的消息:6

2018-02-18 19:02:33.479275 + 0530 stocks-cake [10965:3662407] LOG SocketEngine:切换到WebSockets

2018-02-18 19:02:33.479594 + 0530 stocks-cake [10965:3662407] LOG SocketEngineWebSocket:发送ws:类型:5

2018-02-18 19:02:33.480317 + 0530 stocks-cake [10965:3662407] LOG SocketEngine:Flushing probe wait

2018-02-18 19:02:59.288327 + 0530 stocks-cake [10965:3662407] LOG SocketEngine:写ws:有数据:false

2018-02-18 19:02:59.288576 + 0530 stocks-cake [10965:3662407] LOG SocketEngineWebSocket:发送ws:类型:2

2018-02-18 19:02:59.338827 + 0530 stocks-cake [10965:3662407] LOG SocketEngine:得到的消息:3

2018-02-18 19:03:26.788673 + 0530 stocks-cake [10965:3662679] LOG SocketEngine:写ws:有数据:false

有什么我错过了吗?做错了什么?提前致谢。

ios swift socket.io
2个回答
0
投票

声明应如下所示,您忘记设置端口

   let manager = SocketManager(socketURL: URL(string: "http://localhost:8080")!, config: [.log(true), .compress])
   let socket = manager.defaultSocket

0
投票

使用如下命名空间:

let socket = socketManager.socket(forNamespace: "/watch")
© www.soinside.com 2019 - 2024. All rights reserved.