メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

SDK移行ガイド - JS 1.0

概要

Twilio Programmable Chat 1.0はデータの同期に追加のコントロールを提供し、パフォーマンスの向上やその他多くの機能強化が含まれています。 このガイドは既存のChatアプリケーションから新しい1.0リリースへの移行のお手伝いをします。

クライアントの初期化が、大多数のユーザーの典型的なシステムの使用方法を反映して単純化されました。 全ユーザーチャネル(現在のユーザーが参加している、あるいはオーナーであるチャネル)はクライアントの起動時から購読されますが、最初はメンバーの一覧のみが同期されます。 これにより迅速な起動を維持しつつ、クライアントに最新のアクティビティーが反映されます。

UserInfoクラスの変更

UserInfo は廃止予定となり、2つの個別のクラス、UserおよびUserDescriptorに置き換えられました。 ChannelDescriptorクラス同様、UserDescriptorは取得後に直接使用されるべきではあるが、一方で時間の経過とともにデータが更新されないため保持されない、その時点でのデータのスナップショットを表します。

UserおよびUserDescriptorクラス

User クラスはProgrammable Chatにサブスクリプションという新しい概念を追加しました。 Programmable Chatプリミティブは、サーバーから更新を受け取ると更新されます。 現行のChannelオブジェクトは常に購読され、ChannelDescriptorオブジェクトはされません。 同様に、UserDescriptorオブジェクトは購読されませんが、Userオブジェクトについては定かではありません。 Userがクライアントで最初に購読されると、Client#event:userSubscribedイベントを受信します。

サイズの大きいインスタンスでのパフォーマンスを向上させるため、ユーザーは暗黙的に購読されなくなりました。 少なくとも最近購読されていたユーザーが購読を取りやめたあと、同時に最大100までのユーザーを購読できます。購読済みのUserあるいはUser Descriptorsを適切に使用することが、アプリケーションのパフォーマンスにおいて鍵となります。

  • 購読済みのユーザーは、ただちに他のクライアントで行われた変更(分かりやすい名前および属性など)が反映され、最新の情報に更新済みの在席確認情報とオンラインステータス情報が得られます。 購読済みのユーザーはメッセージのライブ表示、またはクライアントによって最近連絡のあったメッセージに最適です。
  • User Descriptorはシステム内のユーザーステータスのスナップショットです。 これらのスナップショットオブジェクトは、ユーザーインターフェイスの中でユーザーの一時的な一覧や、継続的なデータの同期が重要出ないチャネルにおける多くのユーザーの視覚化に最適です。

最初にUserオブジェクトを取得した際にこれは購読されますが、Programmable Chatクライアントで一度に購読できるUserオブジェクトは最大100個になります。 この制限を超過すると、メモリー内でもっとも古い購読済みUserが購読解除されます。 その際、いくつかのことが発生します。

  • 新しいClient#event:userUnsubscribedイベントは、オブジェクトがもうこれ以上更新を受け取らないことを知らせるため発生します。
  • isSubscribedプロパティーはこのUserインスタンスに対してfalseの値を返すようになります。
  • 購読の解除されたUserオブジェクトからデータを読み込もうとすると、それに対して知りうる最新のデータを返します。
  • 新しいClient#event:userSubscribedイベントは新規オブジェクトが更新を受信していることを知らせるため発生します。

指定されたChatクライアントのインスタンスで同時に購読できるユーザー数は、Userオブジェクトが購読解除されることで影響を受けない程度に十分大きいものです。 これは開発者がコード内で提供すべき類のものですが、常にユーザーを表すオブジェクトを更新される際にUserオブジェクトを、メンバー一覧などの一時的なUIを表示する際にはUserDescriptorを使用していることを確認することは重要です。

新規UserDescriptorクラスには、非推奨となったUserInfoオブジェクトのすべてのアクセサーが含まれますが、セッターはありません。 また、購読済みのUserオブジェクトを返すsubscribe()関数もあります。

新規Userオブジェクトは旧UserInfoオブジェクトの全機能と、Userオブジェクトがまだ購読中の場合に設定されていることを確認すべきisSubscribedプロパティーを持っています。 更新を反映するためのUser#event:updatedがあります。 このオブジェクトにはもう更新する必要のないunsubscribe()オブジェクトを購読プールから明示的に削除するUser#event:updatedメソッドがあります。

クライアントクラスの変更

購読ずみ、および同期済みのChannelの一覧を取得するgetSubscribedChannels()という新しい関数もあります。 この関数は、非推奨となったgetUserChannels()関数を置き換えるものです。

getPublicChannels()関数は、返されるオブジェクトを明確にするためgetPublicChannelDescriptors()に名前変更され、getUserChannelDescriptors()という新規関数も追加されました。 getUserChannelDescriptors()は、現在ログイン中のUserの作成した、あるいは参加している全Channelの静的な情報を伴うページ分けてされたChannelDescriptorオブジェクトの配列を返します。

Client#event:userInfoUpdatedイベントはUserInfoクラスとともに削除されました。 代わりに下記の新規イベントが追加されました: Client#event:userSubscribedClient#event:userUnsubscribed、およびClient#event:userUpdatedです。

新規UserDescriptorおよびUserクラスのインスタンスを操作するため、Clientクラスには以下の新しい関数が追加されました:

  • 関数getUserDescriptor(identity)は、あるidentityに対してUserDescriptorを返します。
  • getUser(identity)関数は指定されたidentityに対するUserオブジェクトを返し、それを購読します。
  • getSubscribedUsers()関数は現在購読されている全Usersの配列を返します。

Channelクラスの変更点

あるChannelメンバーに対するユーザー記述子を取得するための新規関数、getUserDescriptors()が追加されました。 関数はUserDescriptorのページ分けされた配列を返します。

ChannelDescriptorクラスの変更

ChannelDescriptor 公開およびユーザーのChannelの静的(スナップショット)情報を表すために使用されるようになりました。 変更を反映するために、以下のプロパティーが追加されました: isPrivatelastConsumedMessageIndexstatustypeです。

Memberクラスの変更

userInfo プロパティーはMember#event:userInfoUpdatedイベントと同様削除されました。 代わりに、便宜的関数が追加されました。 getUserDescriptor()およびgetUser()が、それぞれUserDescriptorと購読されたUserオブジェクトを取得するためのものになります。

Rate this page:

ヘルプが必要ですか?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.