Ursus Airlock
Swift 编写的适用于 iOS/macOS 的 Urbit HTTP/%eyre
客户端。
请参阅我的 Ursus Chat 仓库中的示例项目。
用法
Ursus Airlock 还远未完成 - 没有更好的文档和示例应用,目前只有以下快速草稿
let airlock = Airlock(url: URL(string: "https://")!, code: "fipfes-fipfes-fipfes-fipfes")
airlock.loginRequest() { result in
switch result {
case .success(let ship):
airlock.connect()
airlock.subscribeRequest(ship: ship, app: "chat-view", path: "/primary") { event in
print(event)
}
case .failure(let error):
print(error)
}
}
安装
Ursus 可以通过 Cocoapods 安装,只需在 podfile 中添加以下行
pod 'UrsusAirlock', '~> 1.8'
如果您需要,我可以帮助您设置 Carthage 或 Swift Package Manager 支持。
待办事项列表
使得这个代码库更优秀的事情
- 新的
%logout
端点是否应该清除urbauth
cookie? - 在事件处理器中传递 ID,以便可以进行退订请求。
- 事件源请求应首先使用
.put
创建新的通道,然后再使用.get
检索现有通道;已尝试过此方法,但返回了 400 错误代码。 - 登录和通道请求可以使用状态枚举来维护
LoginState
和ChannelState
。- 如果用户未认证或通道未连接,则可以将请求连在一起。
- 可以使用自定义响应序列化器移除戳和订阅处理器。
- 正确测试
UnsubscribeRequest
和DeleteRequest
。 - 更好的文档/示例。