|
||||||||||||
| 前のページ 1 2 3 4 | ||||||||||||
| Subscriberの作成と登録 | ||||||||||||
|
次にメッセージを購読するSubscriberを作成しよう。SubscriberはMessageListenerクラスを継承してリスト8のように作成する。 リスト8-(1)のコンストラクタでXMLの要素をあらわすElementを引き渡している。これはSubscriberが受け取ったメッセージを反映させるNXML上のUI部品だ。つまりリスト8のRecommendMessageListerクラスは、コンストラクタで渡されたUI部品にメッセージを反映させているのである。 リスト8:クライアント側でのメッセージの購読 リスト8-(2)のonMessageメソッドは、MessageListenerクラスで定義されているメッセージを受け取ったときに呼び出されるメソッドである。PublisherはSerialize可能なオブジェクトやXMLの要素をあらわすElementなどをメッセージとして送信できる。MessageListenerクラスではPublisherが送信したメッセージの型ごとにメッセージを受け取れるメソッドが定義されており、今回PublisherはメッセージをString型で配信しているので第2引数がString型のonMessageメソッドを利用している。 受け取ったメッセージをUI部品のテキスト属性にセットすることで、配信されたメッセージを画面上に表示している(リスト8-(3))。 では次にリスト8のRecommendMessageListenerクラスをSubscriberとして登録してみよう。今回はメニュー画面(index.nxml)が生成されたときにMCOを呼び出し、MCOからSubscriberを登録している。 メニュー画面では、リスト9-(2)のようにメニュー画面が生成されたときに発生するイベントonCreateで、リスト9-(1)で定義したMessageMcoのstartSubscribeメソッドを呼び出させている。このとき「startSubscribe」メソッドの引数にSubscriberが受け取ったメッセージを表示するUI部品として、リスト9-(3)で定義したlblMessageというid属性をもつラベルを渡している。 MessageMcoではNetServiceクラスのsubscribeメソッドを、受け取りたい(購読したい)メッセージのトピックと、メッセージを受け取ったときに呼び出すRecommendMessageListenerクラスを引数で指定して呼び出している(リスト10-(1))。 リスト9:メニュー画面 リスト10:Subscriberの登録 |
||||||||||||
| nexaweb-client.xmlの設定を変更する | ||||||||||||
|
PublisherとSubscriberを作成し終えたら、WEB-INF/nexaweb-client.xmlにサーバ側からのメッセージを受け取れるよう、リスト11-(1)のようにestablish-push-connection-on-startupタグをtrueに設定する。 リスト11:nexaweb-client.xml
これでPub/Subによるメッセージ通信は完了となる。Tomcatを起動してメニュー画面を表示してみると、お勧めのメニューの紹介が2秒ごとに表示されるはずだ。 |
||||||||||||
| まとめ | ||||||||||||
|
駆け足であったが、この連載を通じてNexawebでのアプリケーション作成の方法を紹介してきた。Nexawebには他のJavaライブラリが提供するチャートをNexawebで表示させる機能など、様々な強力な機能が多く備わっている。連載で紹介したデータバインドやメッセージングの機能なども、まだまだ説明し切れていない点がある。 Nexawebにはいくつもの利点があるのだが、クライアント/サーバどちらのモジュールもJavaで記述できる点をはじめ、MVCフレームワークなどとの連携のしやすさや画面をJSPと組み合わせて記述できるなど、一般的なWebアプリケーションで培った経験を活かせるなどといった点は非常に優れていることは理解してもらえたはずだ。 ただし、ある機能を実現する方法がいくつも用意されすぎている点は、開発者にどの機能を利用すればよいのか混乱させてしまうかもしれない。またクライアント側で発生したエラーに対して与えられる情報が少ないため、デバッグしづらい点も欠点といえるだろう。 貴方もぜひ一度Nexawebが実現するリッチクライアントアプリケーションのすごさや開発のしやすさを体験してほしい。 |
||||||||||||
|
前のページ 1 2 3 4 |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||






