Scala/Akka/Playを使用して簡単なWebsocketアプリケーションを作成したいと思います。
例( webchat や Scala Days での最近の話)など)からわかるのは、JavaScriptとCoffeescript、htmlテンプレートなど。
私のWebsocketアプリケーションのクライアントもネイティブモバイルアプリ(Android、iOS)になるので、「ブラウザーの外」で考える必要があります。
「hello」文字列をプッシュするだけのWebSocketアプリケーションを作成するにはどうすればよいですか?
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をフィードすることもできます。
古くからあるSocketを使用することもできますが、ポート転送(つまりファイアウォール経由)で問題が発生するか、Java:- http://www.Eclipse.org/jetty/documentation/current/jetty-websocket-client-api.html