PubNub Swift SDK
这是官方的PubNub Swift SDK仓库。
PubNub负责您应用程序实时通信层所需的基础设施和API。专注于您的应用程序逻辑,让PubNub处理在全球范围内发送和接收数据,时间不足100毫秒。
要求
- iOS 9.0+ / macOS 10.11+ / Mac Catalyst 13.0+ / tvOS 9.0+ / watchOS 2.0+
- Xcode 11+
- Swift 5+
PubNub Swift SDK不包含任何外部依赖。
获取密钥
您需要发布和订阅密钥来验证您的应用程序。从管理门户获取您的密钥。
设置您的项目
您有几种方法可以设置您的项目。我们在这里提供了使用Swift包管理器、CocoaPods和Carthage的说明。
Swift包管理器
- 在Xcode中创建或打开您的项目
- 转到文件 > Swift包 > 添加包依赖项
- 搜索PubNub并选择pubnub拥有的swift包,然后点击“下一步”按钮
- 使用从
4.0.0
<5.0.0
的Up to Next Major Version
规则,然后点击“下一步”按钮
有关更多信息,请参阅Apple关于将包依赖项添加到您的应用程序的指南
CocoaPods
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'PubNubSwift', '~> 4.0'
end
注意:将
YOUR_TARGET_NAME
替换为您的目标名称。
在包含您的Podfile
的目录中执行以下操作
pod install
Carthage
官方支持:Carthage 0.33及更高版本。
将以下内容添加到Cartfile
github "pubnub/swift" ~> 4.0
然后在包含您的Cartfile
的目录中,执行以下操作
carthage update
配置 PubNub
-
在您的 AppDelegate 中导入名为
PubNub
的模块import UIKit import PubNub // <- Here is our PubNub module import.
-
创建并配置一个 PubNub 对象
var config = PubNubConfiguration( publishKey: "myPublishKey", subscribeKey: "mySubscribeKey", uuid: "myUniqueUUID" ) let pubnub = PubNub(configuration: config)
添加事件监听器
// Create a new listener instance
let listener = SubscriptionListener()
// Add listener event callbacks
listener.didReceiveSubscription = { event in
switch event {
case let .messageReceived(message):
print("Message Received: \(message) Publisher: \(message.publisher ?? "defaultUUID")")
case let .connectionStatusChanged(status):
print("Status Received: \(status)")
case let .presenceChanged(presence):
print("Presence Received: \(presence)")
case let .subscribeError(error):
print("Subscription Error \(error)")
default:
break
}
}
// Start receiving subscription events
pubnub.add(listener)
注意:您可以通过在订阅监听器中检查
message.publisher
属性来查看特定消息发布者的 UUID。您还必须为publisher
提供一个默认值,因为UUID
参数是可选的。
发布和订阅
pubnub.publish(channel: "my_channel", message: "Test Message!") { result in
switch result {
case let .success(timetoken):
print("The message was successfully published at: \(timetoken)")
case let .failure(error):
print("Handle response error: \(error.localizedDescription)")
}
}
pubnub.subscribe(to: ["my_channel"])
文档
支持
如果您需要帮助或有任何一般性的问题,请联系[邮箱地址:XXX]。
许可证
PubNub Swift SDK 在MIT许可证下发布。有关详细信息,请参阅LICENSE。