いよいよ Starscream を使って OSX(Swift) と Web サーバを連携させてみる。
Web サーバといっても、ただの echo サーバです。
1日目につくった Xcode のプロジェクトを開いて、
ViewController.swift をこんな風に書き換える。
swift
import Cocoa
import Starscream
class ViewController: NSViewController, WebSocketDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
var socket = WebSocket(url: NSURL(scheme: "ws", host: “example.com:3000", path: "/echo")!)
socket.delegate = self
socket.connect()
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
func websocketDidConnect(socket: WebSocket) {
println("websocketDidConnect")
// Webサーバにテキストを送信
socket.writeString("Xcodeからテスト")
}
func websocketDidDisconnect(socket: WebSocket, error: NSError?) {
println("websocketDidDisconnect")
}
func websocketDidReceiveMessage(socket: WebSocket, text: String) {
println("websocketDidReceiveMessage")
// Webサーバから届いたテキストを出力
println(text);
}
func websocketDidReceiveData(socket: WebSocket, data: NSData) {
println("websocketDidReceiveData")
}
}
ポイントは特にないです。
-
Starscreamをインポートする -
WebSocketDelegateを継承する - 例えば
viewDidLoad()で Web サーバへの接続とデリゲートの設定を行う - 必要なメソッドを実装しないとビルドこける
あとは日本語でコメントを書いてるとおりです。
最後に動作確認をしましょう!
echo サーバを起動して、テストページにアクセス。
http://example.com:3000/
間髪いれずに、Xcode のプロジェクトを実行する。
テストページに Xcodeからテスト って表示されたら成功!
逆に、テストページで打ったテキストが
Xcode のデバッグエリアに表示されるかもチェック!

Web からのテスト投稿にタブ記号が入ってるのはどうか見逃してください。
うまくいったら、今日はおわり。
