用于 WebSocket 的响应式扩展。
一个基于 Starscream 的轻量级抽象层,使其具有响应性。
RxWebSocket 可通过 CocoaPods 和 Carthage 获取。要安装它,只需将以下行添加到您的依赖文件中
pod "RxWebSocket"
github "fjcaetano/RxWebSocket"
每个 websocket 事件都将发送到 stream
,它是一个 Observable<StreamEvent>
。
public enum StreamEvent {
case connect
case disconnect(Error?)
case pong
case text(String)
case data(Data)
}
您可以通过订阅 text
属性来接收和发送文本事件
let label = UILabel()
socket.rx.text
.bind(to: label.rx.text)
sendButton.rx.tap
.flatMap { textField.text ?? "" }
.bind(to: socket.rx.text)
更多详情,请查看示例项目。
克隆项目后,使用以下命令拉取所有子模块
git submodule update --init --recursive
RxWebSocket 依赖以下内容进行开发
要轻松安装所有依赖项,只需运行
./install_dependencies.sh
这将安装所有依赖项和虚拟环境(如果需要)。
Xcode 和 Fastlane 将负责启动和停止用于测试的 websocket 回显服务器。但是,如果您发现测试超时,这通常表明服务器未运行。 如果是这样,您可以运行以下命令来管理它
./server.sh {start|stop|restart|status}
这将告诉 wstests 在 127.0.0.1:9000 上启动回显服务器。 如果由于任何原因该端口对您不可用,您可以在 server.sh
文件中更改它。
升级到新的 Swift 版本需要同时升级依赖项。 由于 RxWebSocket 通过 Cocoapods、Carthage 和 Swift Package Manager 分发,因此必须在三个平台对应的 spec 文件中升级依赖项
在 RxWebSocket.podspec 中,更新 swift_version
和文件末尾的依赖项版本
在 Cartfile
中升级依赖项的版本
在 Package.swift
中升级依赖项的版本
在提交之前,请确保至少在 Fastlane 上运行 test
lane。 这将运行所有 iOS 测试。
如果您想彻底一点(推荐且赞赏),请运行 ci
lane,这与 Travis 在测试 PR 时运行的 lane 相同。 此 lane 将运行 iOS、tvOS 和 macOS 的测试,并为三个包管理器检查项目。 如果此 lane 通过,您可以 100% 确定一切运行都尽可能顺利。
您是否喜欢 RxWebsocket 并且积极开发使用它的应用程序? 如果您能帮助我们不断改进它,我们将非常高兴! 随时给我们留言或立即开始贡献!
RxWebSocket 在 MIT 许可证下可用。 有关更多信息,请参见 LICENSE 文件。