web-dev-qa-db-ja.com

scala / akka / playのシンプルなWebsocket

Scala/Akka/Playを使用して簡単なWebsocketアプリケーションを作成したいと思います。

例( webchatScala Days での最近の話)など)からわかるのは、JavaScriptとCoffeescript、htmlテンプレートなど。

私のWebsocketアプリケーションのクライアントもネイティブモバイルアプリ(Android、iOS)になるので、「ブラウザーの外」で考える必要があります。

「hello」文字列をプッシュするだけのWebSocketアプリケーションを作成するにはどうすればよいですか?

19
ticofab

WebSocket接続には、サーバーとクライアントの2つの部分があります。 Play2を使用してサーバー部分を作成し、Android( websocket-Android-phonegap を参照)、iOS( nitt を参照)でクライアントを実装することができます。 =)、javascriptアプリ..

これは、veryの基本的なWebSocket接続の例です http://blog.tksfz.org/2012/10/12/ websockets-echo-using-play-scala-and-actors-part-i /

package controllers

import play.api.mvc._

object Application extends Controller {
  def index = WebSocket.using[String] {
    val out = Enumerator.imperative[String]()
    val in = Iteratee.foreach[String] {
      msg =>
        out.Push(msg)
    }
    (in, out)
  }
}

コントローラを指すルートを設定するだけですconf/routes

GET /connect  Application.index

サーバーを実行する準備ができました。次に、javascriptアプリケーション、Androidアプリケーションなど...クライアント側は別の問題です。

chromeまたはchromiumを使用する場合は、開発ツールでjavascriptコンソールを開くだけで、次のようにサーバーに接続できます。

ws = new WebSocket('ws://localhost:9000/connect')
ws.onmessage = function( message ) { console.log( message ); };
ws.send('test')

メッセージを送信するたびに、メッセージが返送され、JavaScriptコンソールに記録されます。

http://www.websocket.org/echo.html エコーテストを使用して、'ws://localhost:9000/connect'URLをフィードすることもできます。

20
mor

古くからあるSocketを使用することもできますが、ポート転送(つまりファイアウォール経由)で問題が発生するか、Java:- http://www.Eclipse.org/jetty/documentation/current/jetty-websocket-client-api.html

2
ndeverge