06.メッセージに、発信者名を表示する
メッセージに、発信者名を表示する処理を作成します。
解説
メッセージに、発信者名を表示することに関する処理は、以下です。
- クライアント側で表示させるウェブページに、ニックネーム入力フォームを追加する。( <form><input /><button>Join</button></form> )
- クライアント側で動作するプログラムに、ニックネームを送信する処理を追加する。( socket.emit('join',・・・) )
- サーバー側で動作するプログラムに、ニックネームを受信する処理を追加する。( socket.on('join',・・・) )
準備
05.を実施していない場合は、まず、05.を実施します。
ニックネーム入力フォーム
ウェブページを以下の画面構成で作成します。
- 「チャット画面」(chat-screen)と「入室画面」(join-screen)がある。
- 「チャット画面」は、非表示。(display:none)
- 「入室画面」は、ウィンドウの高さの残り全部を灰色で多い、灰色部分の中央に「ニックネーム入力フォーム」(display:flexを活用)
「public/index.html」全体としては、以下のようにします。
クライアント側の処理
「public/client.js」 の「「Send」ボタンを押したときの処理」の上に、「Join」ボタンを押したときの処理を追加します。
サーバーから送られてくるメッセージオブジェクトにニックネームが付加されるので、リスト表示するメッセージにニックネームを付加します。
「public/client.js」 の「サーバーからのメッセージ拡散に対する処理」の、「メッセージの整形」処理に「ニックネーム」に関する処理を追加します。
「public/client.html」全体としては、以下のようにします。
サーバー側の処理
「server.js」 の「接続時の処理」の上部に、「ニックネーム」変数を追加します。
「server.js」 の「新しいメッセージ受信時の処理」の上に、「入室時の処理」を追加します。
「server.js」 の「新しいメッセージ受信時の処理」の「メッセージオブジェクトの作成」に「ニックネームの設定」を追加します。
「server.js」 全体としては、以下のようにします。
動作確認
サーバーを起動します。
「MyChat」フォルダで、下記コマンドを実行します。
ブラウザから、「localhost:1337」にアクセスします。
「ニックネーム入力フォーム」が表示されます。
例えば、「ABCD」というニックネームをフォームに入力し、「Join」ボタンを押します。
入力した名前が、ニックネームとして表示されます。
メッセージ入力フォームが表示されます。
サーバー側では、
「connect」
に続いて、
「join : ABCD」
と表示されます。
例えば、「aiueo」と「あいうえお」というメッセージをフォームに入力し、「Send」ボタンを押します。
サーバー側では、
「connect」
に続いて、
「#input_message : aiueo」
「spread message : Object」
「#input_message : あいうえお」
「spread message : Object」
と表示されます。
サーバー側では、
「connection」
「join : ABCD」
に続いて、
「new message aiueo」
「new message あいうえお」
と表示されます。
ブラウザを別に立ち上げ、「localhost:1337」にアクセスし、メッセージを送信すると、送信したメッセージが、両方のブラウザに、即座に、リスト表示されます。
起動したサーバーは、「Ctrl + C」で終了します。
ダウンロード
関連ページ
前項目:05.メッセージにメッセージ時刻を加える
次項目:07.ユーザーの入室、退室を表示する。ユーザー数を表示する