セカイノカタチスマートフォン用の表示で見るセカイノカタチ世界のカタチを探求するブログ。関数型言語に興味があり、HaskellやScalaを勉強中。最近はカメラの話題も多め2012-07-30Jetty8のWebsocketをScalaから使うScalaさて。会社の開発合宿にいってきました。(合宿の様子)それで、僕のテーマは、Websocketにしてみたのですが、色々ハマった上で、おもしろいものができたっぽいので、エントリーしようかと思いました。scala」でggrとでてくるid:yuroyoroさんの日記「Jetty7のWebSocketをScalaから使う」、大変参考にさせていただいたのですが、Jetty7を対象にかかれていて、ちょっと古くなっていました。今回これをベースにJetty8で動かすために奮闘したって感じです。何はさておき、今回作った動くものです。container:startサーバーが起動したら、http://localhost:8080/にアクセスしてください。Jetty8をsbtで使うJetty8をsbtを使うためには、バグを回避する必要があります。Jettyのバグなのか、sbtのバグなのか判りませんが、StackOverFlowにスレが立ってました。orbitがなんなのか、よくわかりませんが、build.sbtに、こんな感じで書く必要があるようです。"jar")))また、そもそもsbtから、web-applicationのサポートが分離していて、project/plugins.sbtを追記する必要があった模様。この説明だと、Jettyのバージョンが古いが、上のとおり、8.1.5でも動く模様。この設定で、HelloWarldServletが動く。Jetty8版のWebSocketServletコードは、こんな感じ。エラー追跡のためのログが痛々しいけど、ゆるして。}}大きな違いは、WebSocketにテキストやバイナリに特化したサブクラスが追加されたこと。今回は、WebSocket.OnTextMessageを使っています。WebSocket.Outboundかなくなり、WebSocket.Connectionになったこと。WebSocket.OnTextMessageのおかげで、煩雑さが減り、少しすっきりしましたね。Outboundから、Connectionへの変更は、違いがよく判りません。名前が気に入らなかったんでしょうか。クライアントを書くそしたら、クライアントを書きます。Draggableを使って、divをドラッグすると、別のブラウザでも、シンクロして四角が動くという画期的な(?)サンプルを作りました。上のサンプルコードで、DraggableServletだったんですね。:-)ちなみに蛇足ですが、DraggableServletで普通にChatも動きます(汗)。単純に、テキストで「top,left」を渡していだけですからね。id=posi></span></p></div></div></body></html>試してみると、並べて置いたブラウザで、確かに四角が連動するのでおもしろいです。今回は、ChromeとFirefoxで試してみました。はてぶろはじめました。はてなブログProシステム開発の世界で15年の山の民による、世界のカタチを探求するブログ。(4)はてなブログをはじめよう!qtamakiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。