Start subscribing with Swift on iOS®
Create a client that connects to Diffusion™ Cloud. This example uses Swift to create a client and subscribe to a string topic.
To use this example, you need Apple's Xcode installed on your development system and a Diffusion Cloud service. For more information about getting a Diffusion Cloud service, see Getting started with Diffusion Cloud.
You also require that anonymous client connections to the server are assigned a role with the "CLIENT" role. For more information about roles and permissions, see Role-based authorization.
and permissions. For example, theThis simple subscribing example connects to Diffusion Cloud. It then adds a local fallback string value stream on which to receive notifications regarding updates, followed by sending a request to Diffusion Cloud to subscribe to a topic.
You will need a caller to instantiate a new SimpleSubscriber instance and then call publish().
Full example
import Foundation import Diffusion let url = NSURL(string: "wss://host_name") class SimpleSubscriber: PTDiffusionStringValueStreamDelegate { var session: PTDiffusionSession? func subscribe() { // Connect to Diffusion Cloud PTDiffusionSession.open(with: url! as URL) { (session, error) -> Void in self.session = session; // maintain strong reference to session // Add a new stream let stream = PTDiffusionPrimitive.stringValueStream(with: self) session!.topics.addFallbackStream(stream) // Subscribe to the topic session!.topics.subscribe( withTopicSelectorExpression: "example/topic") { (error) -> Void in } } } func diffusionStream(_ stream: PTDiffusionStream, didSubscribeToTopicPath topicPath: String, specification: PTDiffusionTopicSpecification) { print("Subscribed: \(topicPath)") } func diffusionStream(_ stream: PTDiffusionValueStream, didUpdateTopicPath topicPath: String, specification: PTDiffusionTopicSpecification, oldString: String?, newString: String?) { print("Update: \(String(describing: newString))") } func diffusionStream(_ stream: PTDiffusionStream, didUnsubscribeFromTopicPath topicPath: String, specification: PTDiffusionTopicSpecification, reason: PTDiffusionTopicUnsubscriptionReason) { print("Unsubscribed: \(topicPath)") } func diffusionDidClose(_ stream: PTDiffusionStream) { print("Closed") } func diffusionStream(_ stream: PTDiffusionStream, didFailWithError error: Error) { print("Failed: \(error)") } }
This page last modified: 2017/06/29