Skip to content

Instantly share code, notes, and snippets.

@FZambia
Last active April 18, 2017 19:39
Show Gist options
  • Select an option

  • Save FZambia/af8cc3cb5c092eb22f70740de3231489 to your computer and use it in GitHub Desktop.

Select an option

Save FZambia/af8cc3cb5c092eb22f70740de3231489 to your computer and use it in GitHub Desktop.
Using centrifuge-mobile gomobile-generated library from Swift (for iOS development)
import UIKit
import Centrifuge
class MessageHandler : NSObject, CentrifugeMessageHandlerProtocol {
var l: UILabel!
func setLabel(l: UILabel!) {
self.l = l
}
func onMessage(_ p0: CentrifugeSub!, p1: CentrifugeMessage!) {
DispatchQueue.main.async{
self.l.text = p1.data()
}
}
}
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
label.text = "Connecting..."
DispatchQueue.main.async{
let creds = CentrifugeNewCredentials(
"42", "1488055494", "", "24d0aa4d7c679e45e151d268044723d07211c6a9465d0e35ee35303d13c5eeff"
)
let config = CentrifugeDefaultConfig()
let eventHandler = CentrifugeNewEventHandler()
let url = "ws://localhost:8000/connection/websocket"
let client = CentrifugeNew(url, creds, eventHandler, config)
do {
try client?.connect()
} catch {
self.label.text = "Error on connect..."
return
}
let subEventHandler = CentrifugeNewSubEventHandler()
let messageHandler = MessageHandler()
messageHandler.setLabel(l: self.label)
subEventHandler?.onMessage(messageHandler)
do {
try client?.subscribe("channel", events: subEventHandler)
} catch {
DispatchQueue.main.async{
self.label.text = "Subscribe error"
}
return
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment