测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
Released最后发布 | 2017年2月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
由George Lee维护。
一个用于与Phoenix Channels通信的Swift库。基于最新的JavaScript库版本
从Git获取库并将PhoenixSwiftClient.xcodeproj
添加到您的XCode项目中。然后,在项目的设置中,在“通用” -> “嵌入的二进制文件”下添加PhoenixSwiftClient.framework
。
PhoenixSwiftClient基于当前的Phoenix 1.2.1 JS客户端,因此模式大致相同。还设置了一个带有PhoenixSwiftClientExample
文件夹的示例项目。
首先导入库。
import PhoenixSwiftClient
要创建套接字连接,创建一个包含您要连接的URL字符串的URL对象。
let url = URL(string: "ws://:4000/socket")
conn = Socket(endpointUrl: url!, options: [:])
conn.connect()
如果您的Phoenix channels端点需要参数(例如,用于身份验证),您可以通过options
参数传递这些参数。
let params = ["join": "params"]
conn = Socket(endpointUrl: url!, options: ["params": params])
您可以从套接字中钩入生命周期事件,如onError
和onClose
。
socket.onError(callback: { (error: Error) -> () in
print("Error")
})
一旦您有了套接字,您就可以开始监听通道。要连接通道,您必须提供订阅的主题以及任何必要的参数。
channel = connection.channel(topic: "room:lobby", chanParams: ["foo": "bar"])
channel.join(timeout: nil)
一旦有了Channel对象,您就可以开始监听或推送事件。
channel.on(event: "ping", callback: { (payload: Any?, ref: Int?) -> () in
print("got ping!")
})
channel.push(event: "pong", payload: ["foo": "bar"], timeout: nil)?.receive(status: "ok", callback: { (payload: [String: AnyObject]?) -> () in
print("Received reply")
})
存在性对象提供了从服务器同步存在性信息的功能。使用syncState
和syncDiff
处理传入的事件。