チャット機能の実装方法

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

「いいね!」 1

関連課題

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

「いいね!」 1

@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

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

2月24日予定

「いいね!」 1

@iwasaki.hexabase
本番環境のSSEのエンドポイントはhttps://api.hexabase.com/sseで合っていますでしょうか。

@s-sengoku

本番環境のSSEのエンドポイントは https://api.hexabase.com/sse で合っていますでしょうか。

正しくは、https://sse.hexabase.com/sseとなります。
どうぞよろしくお願い致します。

@hxsupport
ご回答ありがとうございます。
https://sse.hexabase.com/sseで試してみます。

「いいね!」 1

@hxsupport
以前はなかった現象なのですが、Eventsourceが1分ほどでnet::ERR_CONNECTION_CLOSEDで接続が切られ、接続しなおしているのですが、仕様が変わったのでしょうか。

「いいね!」 1

@s-sengoku
httpのタイムアウトの設定時間を伸ばしました。(2分に致しました。)
改めてご確認いただけますでしょうか。

「いいね!」 1

@hxsupport
ご対応ありがとうございます。
改めて確認致します。

「いいね!」 1