RxWebSocket 2.2.0

RxWebSocket 2.2.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最新版本2019年6月
SPM支持 SPM

Flávio Caetano 维护。



 
依赖于
Starscream~> 3.0.6
RxSwift~> 5.0
RxCocoa~> 5.0
 

RxWebSocket

Build Status Version License Platform codecov Carthage compatible


WebSockets 的响应式扩展。

Starscream 上创建了一个轻量级抽象层以使其变得响应式。

安装

RxWebSocket 可通过 CocoaPodsCarthage 获取。要安装它,只需将以下行添加到您的依赖文件中

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 文件。