06.メッセージに、発信者名を表示する



メッセージに、発信者名を表示する処理を作成します。

解説

メッセージに、発信者名を表示することに関する処理は、以下です。

  1. クライアント側で表示させるウェブページに、ニックネーム入力フォームを追加する。( <form><input /><button>Join</button></form> )
  2. クライアント側で動作するプログラムに、ニックネームを送信する処理を追加する。( socket.emit('join',・・・) )
  3. サーバー側で動作するプログラムに、ニックネームを受信する処理を追加する。( socket.on('join',・・・) )

準備

05.を実施していない場合は、まず、05.を実施します。

ニックネーム入力フォーム

ウェブページを以下の画面構成で作成します。

「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.ユーザーの入室、退室を表示する。ユーザー数を表示する