05.メッセージにメッセージ時刻を加える
サーバーから、接続しているすべてのクライアントへ、メッセージ拡散する際に、メッセージ時刻を付加する処理を作成します。
解説
メッセージに時刻を加えることに関する処理は、以下です。
- サーバー側で動作するプログラムの、メッセージを全員に送信する処理で送信するデータに、現在時刻情報を付加する。( const objMessage = {strMessage: strMessage,strDate: strNow} )
- クライアント側で動作するプログラムの、メッセージを受信する処理の、メッセージリストに追加する文字列に、現在時刻情報を付加する。
準備
04.を実施していない場合は、まず、04.を実施します。
サーバー側の処理
「server.js」 の定数の定義の下に、「時刻文字列の取得」と「数字を2桁の文字列に変換」の関数の定義を追加します。
「server.js」 の「新しいメッセージ受信時の処理」の中の「送信元を含む全員に送信」の処理を、「メッセージ文字列」の送信から、「メッセージオブジェクト」の送信に変更します。
「メッセージオブジェクト」の内容が、「メッセージ文字列」と「現在時刻文字列」になるように処理を追加します。
「server.js」 全体としては、以下のようにします。
クライアント側の処理
「public/client.js」 の「サーバーからのメッセージ拡散に対する処理」を、「メッセージ文字列」を受け取る処理から、「メッセージオブジェクト」を受け取る処理に変更します。
リストに追加するメッセージを、「メッセージ文字列」から「メッセージ時刻とメッセージ文字列を結合した文字列」に変更します。
「public/client.html」全体としては、以下のようにします。
動作確認
サーバーを起動します。
「MyChat」フォルダで、下記コマンドを実行します。
ブラウザから、「localhost:1337」にアクセスします。
例えば、「aiueo」と「あいうえお」というメッセージをフォームに入力し、「Send」ボタンを押します。
送信したメッセージが、リスト表示されます。
Chrome のデベロッパーツールの 「Console」に、
「connect」
に続いて、
「#input_message : aiueo」
「spread message : Object」
「#input_message : あいうえお」
「spread message : Object」
と表示されます。
サーバー側では、
「connection」
に続いて、
「new message aiueo」
「new message あいうえお」
と表示されます。
ブラウザを別に立ち上げ、「localhost:1337」にアクセスし、メッセージを送信すると、送信したメッセージが、両方のブラウザに、即座に、リスト表示されます。
起動したサーバーは、「Ctrl + C」で終了します。
ダウンロード
関連ページ
前項目:04.サーバーからクライアントへメッセージの拡散の処理を作る
次項目:06.メッセージに、発信名を表示する