在swift命令行应用程序的主线程中等待异步socket.io回调

时间:2015-12-30 19:57:17

标签: swift asynchronous socket.io

我有一个swift命令行应用程序,它使用socket.io与服务器通信。问题是我使用的库是异步的,因此一旦应用程序完成连接并进入循环,主线程中的事件处理程序就永远不会被执行。

我知道我需要使用某种形式的GDC,但是大多数示例在此处仅处理异步调用后的同步处理。但我想做的只是让主线程免费处理来自工人的事件。

这是一种天真的方法,使主线程无法处理处理程序:

import Foundation

let socket = SocketIOClient(socketURL: "localhost:3000", options: [.Log(true), .ForceWebsockets(true)])

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

socket.on("config") {data, ack in
    print("got my config")
}

socket.connect()

while (true){
    sleep(1)
}

现在,我将如何制作runloop,或使用GDC使处理程序能够被执行?

0 个答案:

没有答案