19

Scala/Akka/Playを使って簡単なWebsocketアプリを作りたいと思っています。

例 ( Web チャットやScala Days での最近の講演など) からわかることは、JavaScript / Coffeescript、html テンプレートなどのブレンドです。

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

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

4

2 に答える 2

20

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

http://blog.tksfz.org/2012/10/12/websockets-echo-using-play-scala-and-actors-part-i/から取得した非常に基本的な websocket 接続の例を次に示します。

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)
  }
}

controller を指すルートを設定するだけですconf/routes:

GET /connect  Application.index

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

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 をフィードすることもできます。

于 2013-07-20T13:22:23.557 に答える
2

古いソケットを使用することもできますが、ポート転送 (つまり、ファイアウォールを介して) に問題があるか、Java の次のような Websocket クライアント ライブラリを使用することもできます: http://www.eclipse.org/jetty /documentation/current/jetty-websocket-client-api.html

于 2013-07-20T13:44:14.547 に答える