チャット機能の実装方法

実装サンプル等、実装方法がわかるものがあれば提供していただきたいです。
(ドキュメントの記載では具体的な実装方法が把握できませんでした)

1 Like

関連課題

質問を整理いただき、ありがとうございます。
準備中ですので、少々お待ちください。

1 Like

@y.kachi @k-otani

回答( @iwasaki.hexabase

  • 準備中、しばらくかかりそう

ドキュメントを優先で開示いただく。
サンプルコードについては2月末くらいを目途に受領できればOK

ドキュメントがいつくらいを予定しているか?
一応あるにはあるが、現状のドキュメントでは伝わらないかも。
⇒一旦共有していただく。

サンプルアプリの開発を進めている。

既存コードから探して提供していただける。
⇒2月1日の週にご提供をいただく。

@k-otani こちら情報提供が遅くなって申し訳ありません。
一旦、現時点で提供可能な情報を共有いたします。
(別途、チャット関連のサンプルアプリケーションは準備中ですが、お時間かかる見込みですので)

SSEについて

まず、一般的な情報については以下をご参考にしてください
https://developer.mozilla.org/ja/docs/Web/API/Server-sent_events/Using_server-sent_events

コーディング例

例えば、チャット画面などのようにItemが更新された際にサーバからのイベントを受け取るためには、以下のようなコードになります。

const SSE_ENDPOINT = 'sse'  // 固定の値
const sseEndpoint = '<address of sse server>' // ←例えば開発環境では、https://az-sse.hexabase.com
// channel : 受け取るイベントの名称を与えます
const channel = `item_view_${item_id}_${user_id}`  // Itemが更新された場合に受け取るチャネル名

const evtSource = new EventSource(`${this.sseEndpoint}/${SSE_ENDPOINT }?channel=${channel}`);

// on message handler
evtSource.onmessage = function(event) {
	console.log(event)
}

注意:

  • Item更新イベントは、自分自身には通知されません。2名以上の複数ユーザを作成して動作確認してください。
  • 通知先ユーザについては、Hexabase管理UIのAction設定にある「誰に通知しますか?」の設定が適用されます。通知先のユーザが該当ロールまたはグループに属するか、確認してください。

ご参考(CLI)

  • SSEはActionScriptのデバッグでも用いているSSEサーバと同様になります
$ hx contexts:get
NAME           SERVER                        SSE
stg            https://az-api.hexabase.com   https://az-sse.hexabase.com
prod           https://api.hexabase.com      https://sse.hexabase.com
Current-context set to: stg
2 Likes

サンプルコードの作成が少々遅れている可能性がある。
2/15にk-otaniから、問いあわせて確認する。

2月24日予定

1 Like