Java HTML 5 WebSocket Avatar
 

Java HTML 5 WebSocket Avatar

on

  • 24,498 views

This presentation explain the strategy for HTML 5 in Java EE 7.

This presentation explain the strategy for HTML 5 in Java EE 7.

Statistics

Views

Total Views
24,498
Views on SlideShare
9,047
Embed Views
15,451

Actions

Likes
23
Downloads
100
Comments
0

16 Embeds 15,451

http://yoshio3.com 15295
http://cloud.feedly.com 74
http://webcache.googleusercontent.com 25
http://translate.googleusercontent.com 17
https://twitter.com 16
http://yoshio3.com.preview.shareboost.com 11
http://www.linkedin.com 3
http://www.feedspot.com 2
http://feedly.com 1
http://210.231.209.123 1
http://cache.yahoofs.jp 1
https://www.google.co.jp 1
http://reader.aol.com 1
http://twitter.com 1
http://s.deeeki.com 1
https://yoshio3.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Java HTML 5 WebSocket Avatar Java HTML 5 WebSocket Avatar Presentation Transcript

  • Yoshio TeradaJava Evangelisthttp://yoshio3.com, Twitter : @yoshioterada1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので す。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み 込むことはできません。以下の事項は、マテリアルやコード、機能を提供す ることをコミットメント(確約)するものではないため、購買決定を行う際 の判断材料になさらないで下さい。オラクル製品に関して記載されている機 能の開発、リリースおよび時期については、弊社の裁量により決定されます 。 Oracleは、米国オラクルコーポレーション及びその子会社、関連会社の米国及びその他の国における登録商 標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Make the Future Java(Java の未来を創造)3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Java EE 7 : 2013年 春頃 提供開始予定 テーマ:HTML5 と開発生産性の向上 Java EE 7 SDK の提供開始4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Java EE 7 へ含まれる予定の JSR 一覧 JAX-RS Java Caching JSP 2.2 JSF 2.2 EL 3.0 Portable 2.0 API (JSR-107) Extensions Servlet 3.1 Batch Bean Validation 1.1 Application (JSR-352) Common Interceptors 1.1 CDI 1.1 Annotations 1.1 Java API for JSON Managed Bean 1.0 EJB 3.2 (JSR-353) Java API for Connector WebSocket JPA 2.1 JTA 1.2 JMS 2.0 1.6 (JSR-356) 新規追加 大幅な更新 通常の更新5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Java EE 7 の注目技術6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 今日ご紹介する内容 HTML5化に関するテーマ7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • JSR 344 :JavaServer™ Faces 2.2 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • JSF 2.2新機能の一覧 HTML5 マークアップ・サポート – Pass through attributes and elements Faces フロー CSRF (クロス・サイト・リクエスト・フォージェリ) 対策 ResourceHandler 経由で Facelets のロード ファイル・アップロード マルチ・テンプレート9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • JSF : コンポーネント・ベース開発10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • JSFフレームワークと開発の概要 Web コンテナ Web アプリケーションクライアント プレゼン • アプリケーションロジック ビジネスロジック テーション • コンバート (変換) • バリデーション (検証) • ナビゲーション (画面遷移) • イベント処理 DB JavaServer Faces Web サービス 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • (jsf:value=“”, jsf:action=“”) 今までの開発スタイル JSF 2.0 の開発スタイル コード変換 (XHTML) が必要 デザイナー プログラマー デザイナー プログラマー (HTML) (JSP) 同一ファイルを参照編集可能 デザイナーはテキスト&ブラウザで確認  デザイナーはテキスト&ブラウザで確認 プログラマーはJSP&Webコンテナで確認  プログラマーはXHTMLに要素を挿入 プログラム後のデザイン修正は困難  同一ファイルの為デザイン修正も容易 12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • HTML 5 マークアップ・サポート JSF 2.2 からは 素の HTML コードに JSF 属性を埋め込みましょう!!13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • HTML 5 マークアップ・サポート JSF のライフサイクルに適用可14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • HTML 5 マークアップ・サポート HTML 5 の表現力をそのままに!!15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • HTML 5 マークアップ・サポート<input type=“color” jsf:value=“#{colorBean.color2}”/><input type=“date” jsf:value=“#{calendarBean.date1}” /><keygen jsf:id jsf:value="#{bean.pubKey}"/>標準の HTML 5 タグに jsf:value , jsf:action 等の要素を追加<jsf:element p:elementName="keygen" id=”myKey"p:name="myKey" value="#{bean.myKey}"/>直接要素を JSF ランタイムにスルーも可能 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • ファイル・アップロード<h:form prependId="false" enctype="multipart/form-data"> <h:inputFile id="fileUpload" value="#{test.upfile}"/> <h:commandButton value="upload" action="#{test.doUpload}"/></h:form>将来的には Ajax 対応(Java EE 7 の正式リリース時)のファイルアップロード機能も提供予定ご参考 : http://yoshio3.com/2012/10/20/jsf22-env-on-gf3122/ 17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • ファイル・アップロード@Named(value = "test")@RequestScopedpublic class TestManagedBean { private javax.servlet.http.Part upfile; public String doUpload() { try { String fileName = getFilename(upfile); upfile.write(fileName); } catch (IOException ex) { ex.printStackTrace(); } return ""; } 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • マルチ・テンプレート 同一コンテンツに対しテンプレートでデザイン切り替え可能ご参考 : http://jsfmtsystem.appspot.com/ 19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • マルチ・テンプレート同一コンテンツに対しテンプレートでデザイン切り替え可能 <ui:composition template="#{template}">JSF タグ </ui:composition> デフォルトのスキニング ファイル サムネイル facelets のテンプレート メタ・データ テンプレートのディレクトリ構造20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • マルチ・テンプレート 同一コンテンツに対しテンプレートでデザイン切り替え可能 <template> <name>mytemplate</name> <version>1.1</version>コピーライト・契約等が可能 <creationDate>11.22.2012</creationDate> <author>Yoshio Terada</author> <authorEmail>Yoshio.Terada@foo.jp</authorEmail>複数テンプレートの利用が可能 <authorUrl>http://yoshio.com</authorUrl> <copyright>Yoshio Terada</copyright>jar ファイルにパッケージ化 <license>GNU/GPL version 2</license> <description>Yoshio’s Original Template</description> </template> メタ・データの内容ご参考: http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-971 21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • JSR 356:JavaTM API for WebSocket22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 飛行機の事前座席指定23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • オークション24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 最新情報・更新情報を 取得するために 今どうしていますか?25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • オークション・サイトで更新情報を取得する場合 接続 価格(空席)の 最新情報をくださ 価格(空席) い 情報をくださ い データベース サービス26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • オークション・サイトで更新情報を取得する場合 <HTML> ヘッダー ボタン1の画像 ボタン2の画像 A の価格 余分な広告 2000円 データベース 他へのリンク サービス 製品情報:製品A 製品価格:2000円 製品詳細:これは フッダー </HTML> 切断27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 再度・更新情報を取得する場合 接続 価格の 最新情報をくださ 価格情報を い ください データベース サービス28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 再度・更新情報を取得する場合 <HTML> ヘッダー ボタン1の画像 ボタン2の画像 A の価格 余分な広告 4000円 データベース 他へのリンク サービス 製品情報:製品A 製品価格:4000円 製品詳細:これは フッダー </HTML> 切断29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 1人あたり3回のアクセスで多数の接続・切断接続切断 ….. 製品価格:4000接続 円 …..切断接続 ….. 製品価格:4000切断 円 データベース ….. サービス接続切断 ….. 製品価格:4000接続 円切断 …..接続 …..切断 製品価格:4000 円30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. …..
  • システム全体に高負荷31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 本当に必要な情報は? <HTML> ヘッダー ボタン1の画像 ボタン2の画像 余分な広告 他へのリンク 製品情報:製品A 4000 円 製品価格:4000円 製品詳細:これは… フッダー これだけ </HTML>32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • ネットワーク帯域も無駄33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • WebSocket の背景 – Server Push Polling Long Polling 複雑・非効率・無駄Comet/Ajax34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • WebSocket を使えばどうなる? 接続 接続 2000円 3000円 3000円 データベース サービス 4000円 5000円 6000円 監視プログラムは 6000円 1つのみ 切断35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 1人辺り接続・切断処理は1度接続切断 受信 送信 受信接続切断 送信 データベース 受信 サービス 受信接続切断 受信 受信 送信 監視プログラムは接続 受信 送信 1つのみ切断 受信36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 接続・切断数の減少 不要なデータ配信の排除が可能37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • WebSocket とは TCP ベース 双方向・全二重通信 RFC 6455 JavaScript API by W3C38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • ブラウザの対応状況http://caniuse.com/websockets現バージョンの対応状況39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • WebSocket の基本概念 コネクションの確立双方向のメッセージ送信 コネクションの切断40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • コネクションの確立 HandShake リクエスト HandShake レスポンスクライアント サーバ41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • HandShake リクエスト (RFC 6455で定義) GET /mychat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== Sec-WebSocket-Protocol: megachat, chat Sec-WebSocket-Extensions : compress, mux Sec-WebSocket-Version: 13 Origin: http://example.comクライアント サーバ42 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • HandShake レスポンス (RFC 6455で定義) HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk= Sec-WebSocket-Protocol: chat Sec-WebSocket-Extensions: compress, muxクライアント サーバ43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • コネクションの確立クライアント サーバ44 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • WebSocket のライフサイクル 接続確立 Open Open Message Message Message Message Message Message Error Close 接続切断クライアント サーバ45 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • WebSocket APIwww.w3.org/TR/websockets/46 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Java API for WebSocket (JSR-356)仕様 http://jcp.org/en/jsr/detail?id=356 http://java.net/projects/websocket-spec ステータス: Early Draft47 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 参照実装http://java.net/projects/tyrus最新の GlassFish v4開発ビルドにバンドル済48 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Java のWebSocket 標準実装はとてもかんたん49 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • WebSocket アノテーション アノテーション レベル 内容@WebSocketEndpoint クラス WebSocket のエンドポイントを示す@WebSocketOpen メソッド 接続確立時に呼び出すメソッドを指定@WebSocketClose メソッド 接続切断時に呼び出すメソッドを指定@WebSocketMessage メソッド メッセージを受信した時に呼び出すメソッドを 指定@WebSocketPathParam メソッド エンドポイントのURI 引数に指定されたパラ パラメータ メータを取得する際に仕様@WebSocketError メソッド エラー発生時に呼び出すメソッドを指定 50 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • WebSocket アプリケーション・ライフサイクルvar wsUri = "ws://HOST/foo/hello"; @WebSocketEndpoint("/hello")var websocket = new WebSocket(wsUri);websocket.onopen = function(evt) @WebSocketOpen{ onOpen(evt) };websocket.onmessage = function(evt) @WebSocketMessage{ onMessage(evt) };websocket.onerror = function(evt) @WebSocketError{ onError(evt) };websocket.onclose = function(evt) @WebSocketClose{ onClose (evt) }; JavaScript WebSocket API 51 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • HelloWorld アプリケーション (1対1)import javax.net.websocket.annotations.*;@WebSocketEndpoint("/hello")public class HelloBean { @WebSocketMessage public void sayHello(Session session, String msg) { session.getRemote().sendString(“Hello” + msg); }} 52 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • デモ53 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • サンプル・アプリケーションの構成 (多対1) RE Session Twitter4J Session RE 監視 Session Twitter RE WebSocket Endpoint Remote Endpoint54 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Twitter Streaming アプリ@WebSocketEndpoint(value= "/twitter")public class TwitterWebSocket { @WebSocketOpen public void initOpen(Session session) { TwitterClientSingleton.peers.add(session); } @WebSocketClose public void closeWebSocket(Session session){ TwitterClientSingleton.peers.remove(session); }} 55 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Twitter Streaming アプリ@Startup @Singletonpublic class TwitterClientSingleton extends StatusAdapter {public static Set<Session> peers = null; static { peers = Collections.synchronizedSet(new HashSet());}...続く クライアントの参照情報を保持 Session Session Session Session ・・・・・・ RE RE RE RE 56 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • データ送信コード (ブロッキング) シーケンシャルに配信を実施 (大量のデータで待ち)public void onStatus(Status status) { User user = status.getUser(); String resStr = "@" +user.getScreenName() + " : " + status.getText() ; try { 全ピア(RE)に対して配信 for (Session peer : peers) { peer.getRemote().sendString(resStr); } } catch (IOException ioe) { ioe.printStackTrace(); Session Session Session Session } } RE RE RE RE 57 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • データ送信コード (ノン・ブロッキングfor (Session peer : peers) { Future<SendResult> futureSend = peer.getRemote().sendStringByFuture(resStr); while (!futureSend.isDone()) { // wait here ? } SendResult status = futureSendResult.get(); if (status.isOK()) { // ok } else { // whoops, send failed. }} 58 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • こんな場合は Java EE で WebSocket を!!59 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • OracleResearch Project !!60 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Project Avatar61 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Project Avatar とはコンセプト 先進的な HTML 5 アプリ構築フレームワーク – WebSocket, Server-Sent Event, RESTful に対応 モジュール化対応 JavaScript フレームワーク 軽量なサーバ・アーキテクチャ (Thin-Server Architecture) Avatar のメリット – サーバ・サイドJavaScript と Java EE アプリの融合 – Java VM 上で稼働する JavaScrip のスケーラビリテイ・信頼性・運用保守性62 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Thin-Server アーキテクチャ (TSA) View HTTP/JS今まで アプリ Model サーバ側でマージ アプリ View View HTTP/JSTSA クライアント側 Model Service JSON でマージ63 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Avatar の概念 (クライアント側) Avatar View (UI Node) (Controller) Model Webコンポーネント • データ・ アクセス方法を提供 と同様 バインディング • ローカル <a:page> • ナビゲーション • RESTful <a:form> • ローカル・ • SSE <a:input> ストレージ • WebSocket <a:textarea> … ブラウザ(JavaScript/DOM)64 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Avatar の概念 (サーバ側) Service Avatar Data プロバイダ アクセス方法を提供 ルーティング 利用可能なデータソー • RESTful JSON のシリアライ ス • ファイル • SSE ズ • DB(JPA) • WebSocket • インメモリ Coherence Nashorn (JavaVMで稼働するJavaScriptエンジン)65 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Avatar のアーキテクチャ Avatar アプリ View Avatar アプリ (HTML 5/JS/CSS) HTTP サービス (XML/JavaScript) Avatar 実行環境 Data HTTP/ サービス Avatar コンパイラ WebSocket Nashorn (JavaScript エンジン) UI HTML 5 DOM Java EE Java EE アプリ ローカルストレージ HTTP/ サービスブラウザ WebSocket App サーバ66 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Avatar のアーキテクチャ Avatar アプリ View Avatar アプリ (HTML 5/JS/CSS) HTTP サービス (XML/JavaScript) Avatar 実行環境 Data HTTP/ ①サービスアプリの作成 Avatar Avatar コンパイラ WebSocket Nashorn (JavaScript エンジン) UI HTML 5 DOM Java EE Java EE アプリ ローカルストレージ HTTP/ サービスブラウザ WebSocket App サーバ67 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Avatar のアーキテクチャ Avatar アプリ View Avatar アプリ (HTML 5/JS/CSS) HTTP サービス (XML/JavaScript) Avatar 実行環境 Data HTTP/ サービス Avatar コンパイラ WebSocket ② Avatar コンパイラで Nashorn (JavaScript エンジン) UI HTML 5 DOM View サービス Java EE サービス Data を生成 Java EE アプリ ローカルストレージ HTTP/ サービスブラウザ WebSocket App サーバ68 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Avatar のアーキテクチャ Avatar アプリ View Avatar アプリ (HTML 5/JS/CSS) HTTP サービス (XML/JavaScript) Avatar 実行環境 Data HTTP/ サービス Avatar コンパイラ③ View サービスの WebSocket Nashorn (JavaScript エンジン) UI HTML 5 DOM 「複数ページの一括」 ダウンロード Java EE (※プラグインは不要) HTTP/ サービス Java EE アプリ ローカルストレージブラウザ WebSocket App サーバ69 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Avatar のアーキテクチャ Avatar アプリ View Avatar アプリ (HTML 5/JS/CSS) HTTP サービス (XML/JavaScript) Avatar 実行環境 Data HTTP/ サービス Avatar コンパイラ WebSocket Nashorn (JavaScript エンジン) UI HTML 5 DOM④ WebSocket/Server-Sent Event/ Java EE RESTful で Data サービスを利用 ローカルストレー Java EE アプリ HTTP/ サービスブラウザ ジ WebSocket App サーバ70 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Avatar のアーキテクチャ Avatar アプリ View Avatar アプリ (HTML 5/JS/CSS) HTTP サービス (XML/JavaScript) Avatar 実行環境 Data HTTP/ サービス Avatar コンパイラ ⑤ サーバ側はJava EE WebSocket Nashorn (JavaScript エンジン) UI HTML 5 DOM のサービスも利用可能 Java EE ローカルストレー Java EE アプリ HTTP/ サービスブラウザ ジ WebSocket App サーバ71 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • Avatar のアーキテクチャ Avatar アプリ View Avatar アプリ (HTML 5/JS/CSS) HTTP サービス (XML/JavaScript) Avatar 実行環境 Data HTTP/ サービス Avatar コンパイラ WebSocket Nashorn (JavaScript エンジン) UI HTML 5 DOM ⑥ クライアント側は HTML 5, DOM, Java EE ローカルストレー ローカルストレージ Java EE アプリ HTTP/ サービスブラウザ ジ 等を利用可能 WebSocket App サーバ72 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • クライアントで動作するアプリ アプリ View(Hello World) Model<a:viewModule …> <a:page><a:localModel> <a:model id="name" var NameModel = function(){ idref="NameModel"/> this.first = "Planet"; <a:form> this.last = "Earth"; <a:input label="First Name" this.clear = function(){ value="#{name.first}"/> this.first = this.last = <a:input label="Last Name" ""; value="#{name.last}"/> }; <a:output value="Hello }; #{name.first} #{name.last}"/><a:/localModel> <a:button label="Clear" action="#{name.clear()}"/> ローカルのモデルを定義 <a:/form><a:/page><a:/viewModule> 73 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • WebSocketで動作するアプリ(Model の実装例) Model JSON Service<a:socketModel> Model 用に用意されているvar ChatModel = function(){ this.message = ""; プロトタイプ関数を上書き実装 this.user = ""; var superSend = this.$send; • this.$onMessage this.$send = function(){ • this.$send this.process(this.message); • etc. superSend.call(this); }; …. };<a:/socketModel> 74 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • WebSocketで動作するアプリ(Service の実装例) Model JSON Service<a:socketService Service 用に用意されている url="websocket/chat"> var SocketService = function(){ プロトタイプ関数を上書き実装 this.$onMessage = function(peer,message){ • this.$onMessage this.process(message); • this.$onTimeOut peer.getContext().sendAll(message); • etc. };};<a:/socketService> 75 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • New Announcement 2013 年 春頃 Java イベント開催予定76 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 77 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 78 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.