6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Starscream + Webサーバ 連携メモ (3日目)

6
Posted at

いよいよ 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からテスト って表示されたら成功!

screenshot.png

逆に、テストページで打ったテキストが
Xcode のデバッグエリアに表示されるかもチェック!

screenshot.png
Web からのテスト投稿にタブ記号が入ってるのはどうか見逃してください。

うまくいったら、今日はおわり。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?