RabbitMQ Objective-C 和 Swift 客户端
RabbitMQ 客户端,受 Bunny 大大影响。
由 Swift 测试驱动,并以 Objective-C 实现。
支持的 iOS 和 macOS 版本
此库当前针对 iOS 11+ 和 macOS 10.12+。
依赖关系
此库依赖于
Carthage 安装
使用- 创建一个带有以下行的 Cartfile
github "rabbitmq/rabbitmq-objc-client" "v0.11.0"
运行 Carthage,例如在一个新项目中
carthage bootstrap
- 在您的 Xcode 项目中,在您的目标下“构建阶段”部分,打开“链接二进制与库文件”。现在将例如
Carthage/Build/iOS/RMQClient.framework
(选择 Mac for OSX) 拖到这个列表中。 - 如果您还没有创建,请点击“构建阶段”下的 '+' 图标来添加一个“拷贝文件”阶段。
- 在“目标位置”下,选择“框架”。
- 点击 '+' 并添加 RMQClient.framework。确保“在拷贝时应用代码签名”被勾选。
使用 CocoaPods 进行安装
-
将以下内容添加到您的 Podfile 中
pod 'RMQClient', '~> 0.11.0'
我们建议添加
use_frameworks!
以启用模块化导入(仅限 Objective-C)。 -
运行
pod install
。 -
使用
open MyProject.xcworkspace
打开您的项目。
Objective-C 用户:使用 @import RMQClient;
在 Xcode 中(无法构建模块 'RMQClient')会产生错误,但这不会阻止代码的编译和运行。使用鳄鱼导入可以避免这个 Xcode 错误:#import <RMQClient/RMQClient.h>
。
支持的功能
- 发布和消费字符串消息
- 操作队列、交换、绑定和消费者。
- 服务器端异步 API,使用 GCD 队列(一个代理在可配置的 GCD 队列上接收错误)。
- 可配置的从中断的网络恢复和连接级别异常
- 支持 TLS
- 客户端心跳
- 支持 Carthage
- 支持 CocoaPods
- 支持 iOS
- 支持 MacOS
- 在 iOS 上使用 TLS 身份验证机制插件 支持使用 PKCS12 客户端证书
- 支持 MacOS 的 PKCS12
- 在 iOS 上使用链式 CA 支持使用 PKCS12 客户端证书
- 发布者确认
- 以数据的形式发布和消费消息
- 可自定义的消费钩子
- 当代理(不按计划发送心跳)关闭连接时
- 支持 basic.return
- 确认 事务支持
文档
- 为此客户端库提供了 几个 RabbitMQ 教程。
(基本) 使用示例
-
实例化一个
RMQConnection
let delegate = RMQConnectionDelegateLogger() // implement RMQConnectionDelegate yourself to react to errors let conn = RMQConnection(uri: "amqp://guest:guest@localhost:5672", delegate: delegate)
-
连接
conn.start()
-
创建一个频道
let ch = conn.createChannel()
-
使用该频道
let q = ch.queue("myqueue") q.subscribe({ m in print("Received: \(String(data: m.body, encoding: String.Encoding.utf8))") }) q.publish("foo".data(using: String.Encoding.utf8))
-
完成后关闭连接
conn.close()
有关更详细的说明,请参阅教程。
运行测试
请参阅CONTRIBUTING.md。
许可和版权
(c) 2016-2022 VMware, Inc. 或其关联公司
此软件包,RabbitMQ Objective-C 客户端库,根据 Mozilla Public License 2.0 ("MPL") 和 Apache License version 2 ("ASL") 进行双重许可。