JavaScript
メッセージ履歴の表示
ユーザーには「会話」のイベントを表示させたい。メッセージフィードに追加するイベントのフォーマットを決定するために、イベントの種類に基づいてフィルタリングすることができます。イベントを追加する handleEvent 関数に次のコードを追加する。 chat.js:
コピー
function handleEvent(event) {
let formattedMessage;
switch (event.kind) {
case "member:invited":
formattedMessage = `${event.body.user.name} was invited.<br/>`;
break;
case "member:joined":
formattedMessage = `${event.body.user.name} joined.<br/>`;
break;
case "member:left":
formattedMessage = `${event.body.user.name} left.<br/>`;
break;
case "message:text":
const sender = {
displayName: event.from.displayName,
memberId: event.from.memberId,
userName: event.from.user.name,
userId: event.from.user.id,
};
formattedMessage = formatMessage(sender, event);
break;
}
messageFeed.innerHTML = messageFeed.innerHTML + formattedMessage;
}
この例では、ユーザーのIDを使用して、そのユーザーが送信したメッセージと他のユーザーから受信したメッセージを異なる色で表示することで区別します。を作成する。 formatMessage 関数に以下のコードを追加する。 chat.js:
コピー
function formatMessage(sender, message) {
const rawDate = new Date(Date.parse(message.timestamp));
const options = {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric",
hour: "numeric",
minute: "numeric",
second: "numeric",
};
const formattedDate = rawDate.toLocaleDateString(undefined, options);
let text = "";
if (message.from.memberId !== myMember.id) {
text = `<span style="color:red">${sender.userName.replace(/</g,"<")} (${formattedDate}): <b>${message.body.text.replace(/</g,"<")}</b></span>`;
} else {
text = `me (${formattedDate}): <b>${message.body.text.replace(/</g,"<")}</b>`;
}
return text + "<br />";
}
最後に、新しい着信イベントのイベントリスナーをセットアップする必要がある。これは conversationEvent をクライアントに追加する。クライアント上の run 関数である:
コピー
client.on("conversationEvent", (event) => {
handleEvent(event);
});
ウェブベースのチャットアプリの作成
ユーザー同士がメッセージをやりとりできるWebアプリケーションを作成する
手順
1
このタスクの紹介2
Prerequisites3
Vonageアプリケーションの作成4
会話を作る5
ユーザーを作成する6
会話にユーザーを追加する7
JWTの生成8
Client SDKのインストール9
UIの作成10
ユーザーの認証11
VonageClientをインスタンス化し、Sessionを作成する。12
メッセージ履歴の表示13
メッセージを送る14
アプリケーションの実行15
次はどうする?