RxStarscream 0.10

RxStarscream 0.10

测试已测试
语言语言 SwiftSwift
许可证 Apache-2.0
发布日期最后发布2019年3月
SPM支持 SPM

由 Guy Kahlon、Shai Mishali 和 RxSwift 社区维护Guy KahlonShai MishaliRxSwift Community



 
依赖
Starscream~> 3
RxSwift~> 4.3
RxCocoa~> 4.3
 

  • 作者:
  • Guy Kahlon

RxStarscream

CircleCI pod Carthage compatible

为 Starscream 提供了一个轻量级的扩展,用于使用 RxSwift 可观察者跟踪 WebSocket 事件。

安装

CocoaPods

RxStarscream 通过 CocoaPods 提供。将以下行添加到您的 Podfile

pod 'RxStarscream'

然后执行

pod install

RxStarscream 版本与 Swift 版本。

下面是一个表格,展示您应该为您的 Swift 版本使用哪个版本的 RxStarscream。

Swift RxStarscream RxSwift
>= 4.2 >= 0.10 >= 4.3
< 4.2 >= 0.8 >= 4.0
3.X 0.7 3.0.0 - 3.6.1

Carthage

将以下内容添加到您的Cartfile

github "RxSwiftCommunity/RxStarscream"

然后执行

carthage update

使用示例

通过CocoaPods或Carthage安装后,您应该导入框架。

import RxStarscream

一旦导入,您就可以连接到您的WebSocket服务器。

socket = WebSocket(url: URL(string: "ws://127.0.0.1:8080/")!)
socket.connect()

现在您可以为所有的websocket事件进行订阅

socket.rx.response.subscribe(onNext: { (response: WebSocketEvent) in
	switch response {
	case .connected:
		print("Connected")
	case .disconnected(let error):
		print("Disconnected with optional error : \(error)")
	case .message(let msg):
		print("Message : \(msg)")
	case .data(_):
		print("Data")
	case .pong:
		print("Pong")
  	}
}).disposed(by: disposeBag)

或仅订阅连接事件

socket.rx.connected.subscribe(onNext: { (isConnected: Bool) in
	print("Is connected : \(isConnected)")
}).disposed(by: disposeBag)

或仅订阅消息事件

socket.rx.text.subscribe(onNext: { (message: String) in
	print("Message : \(message)")
}).disposed(by: disposeBag)

示例项目

有一个示例项目(您需要运行 carthage update 以进行编译)。

示例项目使用echo服务器 - https://www.websocket.org/echo.html

祝您玩得开心!

感谢

RxSwift Slack频道中的每个人。

贡献

欢迎提交bug报告和pull请求。

许可证

RxStarscream遵循MIT许可证。有关更多信息,请参阅LICENSE文件。