PhoenixSwiftClient 1.2.0

PhoenixSwiftClient 1.2.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最后发布2017年2月
SwiftSwift版本3.0
SPM支持SPM

George Lee维护。



  • George Lee

Phoenix Swift Client

一个用于与Phoenix Channels通信的Swift库。基于最新的JavaScript库版本🚀

Git子模块

从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])

套接字挂钩

您可以从套接字中钩入生命周期事件,如onErroronClose

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

存在性

存在性对象提供了从服务器同步存在性信息的功能。使用syncStatesyncDiff处理传入的事件。