02.サーバーとの接続、切断の処理を作る
チャットクライアントアクティビティの生成時処理(onCreate())にサーバーに接続する処理を作成します。
チャットクライアントアクティビティの破棄時処理(onDestroy())にサーバーとの接続を切断する処理を作成します。
サーバーに接続する処理の結果(成功や失敗)を受け取る処理も作成します。
サーバーとの接続が切断した際の処理も作成します。
解説
Socket.io を用いて動作するサーバーと接続するためにすべきことは、以下です。
- サーバーのURIを指定して、ソケットオブジェクトを生成しましす。
m_socket = IO.socket( URI_SERVER ); - 接続します。
m_socket.connect();
サーバーとの接続を切断する場合は、以下を行います。
- m_socket.disconnect();
ソケットオブジェクトは、接続完了、接続エラー発生、接続タイムアウト、切断のイベントを受信します。
イベントに対するコールバック関数を定義し、イベント毎の処理を行います。
- 接続完了 : Socket.EVENT_CONNECT
- 接続エラー : Socket.EVENT_CONNECT_ERROR
- 接続タイムアウト : Socket.EVENT_CONNECT_TIMEOUT
- 切断 : Socket.EVENT_DISCONNECT
実装
プロジェクトを開く
01.で作成したプロジェクトを開きます。
チャットクライアントアクティビティ 編集
チャットクライアントアクティビティ を編集します。
「Project」ペインの「app > java > ドメイン.mychatapplication > ChatClientActivity」を開きます。
定数宣言に、「サーバーのURI」定数の宣言を追加します。
メンバー変数宣言に、「ソケットオブジェクト」変数の宣言を追加します。
onCreateメンバ関数に、以下の処理を追加します。
- サーバーとの接続の処理
- 接続完了時の処理
- 接続エラー時の処理
- 接続タイムアウト時の処理
- 切断時の処理
onDestroyメンバ関数を追加し、サーバーとの接続を切断する処理を追加します。
「ChatClientActivity.java」全体としては、以下のようにします。
「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。
リビルドし、エラー、警告がないことを確認します。
実行
Android端末にて、動作確認。
チャットクライアントアクティビティに遷移すると、サーバーとの接続処理が行われ、サーバーと接続するとトースト表示「Connected」が現れます。
チャットクライアントアクティビティからメインアクティビティに遷移すると、サーバーとの接続は切断され、トースト表示「Disconnected」が現れます。
ダウンロード
関連ページ
前項目:01.チャットアプリの骨格を作る
次項目:03.メッセージを送信する処理を作る