05.メッセージにメッセージ時刻を加える



サーバーから、接続しているすべてのクライアントへ、メッセージ拡散する際に、メッセージ時刻を付加する処理を作成します。

解説

メッセージに時刻を加えることに関する処理は、以下です。

  1. サーバー側で動作するプログラムの、メッセージを全員に送信する処理で送信するデータに、現在時刻情報を付加する。( const objMessage = {strMessage: strMessage,strDate: strNow} )
  2. クライアント側で動作するプログラムの、メッセージを受信する処理の、メッセージリストに追加する文字列に、現在時刻情報を付加する。

準備

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.メッセージに、発信名を表示する