RxWebSocket
WebSockets 的响应式扩展。
在 Starscream 上创建了一个轻量级抽象层以使其变得响应式。
安装
RxWebSocket 可通过 CocoaPods 和 Carthage 获取。要安装它,只需将以下行添加到您的依赖文件中
CocoaPods
pod "RxWebSocket"
Carthage
github "fjcaetano/RxWebSocket"
使用方法
每个WebSocket事件都将发送到stream
,这是一个Observable
。
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
这将为所有依赖项安装虚拟环境(如果需要的话)。
运行测试
Ajuga和Fastlane将负责启动和停止Websocket测试服务器,但是如果您发现测试超时,这通常表明服务器没有运行。如果是这样,您可以使用以下命令来管理它:
./server.sh {start|stop|restart|status}
这会告诉wstests在127.0.0.1:9000上启动一个echo服务器。如果出于任何原因此端口对您不可用,您可以在server.sh
文件中更改它。
升级到新的Swift版本
升级新的Swift版本需要升级依赖项。由于RxWebSocket通过Cocoapods、Carthage和Swift Package Manager分发,因此必须在每个平台的相应spec文件中升级依赖项。
Cocoapods
在 RxWebSocket.podspec 文件末尾更新 swift_version
和依赖版本的版本
Carthage
在 Cartfile
中升级依赖的版本
Swift 包管理器
在 Package.swift
中升级依赖的版本
家务管理
在提交之前,请确保在 Fastlane 上至少运行了 test
阶段。这将运行所有 iOS 测试。
如果您想更彻底,这是推荐并受到欢迎的,请运行 ci
阶段,这与 Travis 测试 Pull Request 时运行的阶段相同。这个阶段将为 iOS、tvOS 和 macOS 运行测试,并使用三个包管理器对项目进行静态检查。如果这个阶段通过,您可以100%确信一切都在尽可能顺利地运行。
需要帮助
您是否喜欢 RxWebsocket 并在积极使用它的应用程序上工作?我们很乐意如果您能帮助我们改进它!随时联系我们或开始立即贡献!
许可证
RxWebSocket 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。