Kotlin

チャットイベント

先にVonage CLIで会話を作成し、その会話に2人のユーザーを追加しました。会話はユーザが通信する方法です。会話についての詳細は Conversation API ドキュメント.チャットイベント ConversationEvent オブジェクトは、あなたが作成した会話を使って送信されるので、チャットイベントを取得するには、まず会話に参加する必要があります。これを実装するには ChatViewModel クラスである。

を追加する。 getMemberIDIfNeeded 関数である:

これは memberID会話に参加するときに生成される「会話に参加する」がまだ設定されていない場合は、「会話に参加する」を呼び出します。設定されていない場合は getMemberID.作成する getMemberID:

この関数は、まずこのユーザーのメンバーIDを getConversationMemberもし失敗すれば、次のように会話に加わる。 joinConversation これはメンバーIDを返す。

これで、そのユーザーが会話のメンバーであることが保証されたので、クライアントを使用して会話イベントを取得することができます。という関数を作成します。 getConversationEvents:

getConversationEvents 会話IDと GetConversationEventsParameters.パラメータにより、イベントの返し方をカスタマイズすることができます。この関数は、ページ分割されたレスポンスを返します。ページ分割についての詳細は ページネーションガイド.イベントを表示するには、イベント・オブジェクトを表示文字列に変換するヘルパー関数を作成する:

このチュートリアルで使用する3つのイベントは次のとおりです。 MemberJoinedConversationEvent, MemberLeftConversationEventそして MessageTextEvent.の場合 MessageTextEvent この関数は memberID プロパティを使用して、現在のログイン・ユーザーによって送信されたメッセージかどうかを判断します。これにより、UIはユーザが送信したメッセージを右に、受信したメッセージを左に固定することができます。

について ConversationEventListener

アプリケーションは、最初にロードした後、会話のイベントに反応する必要があります。 ConversationEventListener.セッションが作成されたら、このリスナーを設定するようにログインメソッドを更新する:

新しいイベントが受信されると、それは events これは自動的にパブリッシュされるので、UIは更新される。

UIの更新

今は ChatViewModel で、新しい会話イベントを取得してリッスンし、それらを表示するためにビューコードを更新することができます。 MainActivity.kt を更新する。 ChatScreen コンポーザブル:

今は LazyColumn はイベントリストを受け取り Text 要素と呼ぶ。 generateDisplayText を追加して、表示するテキストと、そのイベントがログインしているユーザーによって所有されているかどうかを取得します。最後に runBlocking ブロックでメンバーIDを取得し、ビューが最初にロードされたときに会話イベントを取得します。