1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Hexabase TypeScript SDKを使ってコメントのリアルタイム通知を受け取る

Posted at

Hexabase(ヘキサベース)は企業においても安心して利用できるBaaS(Backend as a Service)を提供しています。多くのBaaSがそうであるように、主にフロントエンド開発者に利用してもらいたいと考えています。そこで現在、TypeScript SDKの開発が進められています。

この記事ではHexabase TypeScript SDKのインストールと、コメントの通知を受け取る方法を紹介します。

インストール

インストールはnpmやyarnを使って行います。

# npmの場合
npm install @hexabase/hexabase-js

# yarnの場合
yarn add @hexabase/hexabase-js

インポート

インポートすると、 HexabaseClient というオブジェクトが取得できます。

import { HexabaseClient } from "@hexabase/hexabase-js";

初期化

HexabaseClientを初期化します。

const client = new HexabaseClient();

認証

Hexabaseでは業務利用を想定しているため、利用する際に認証情報が必須になります。最初はメールアドレスとパスワードで認証し、その後はトークンを使ってGraphQLにアクセスします。 client を使って処理します。

初回の認証は次のようになります。emailとパスワード、またはトークンが必須です。

await client.login({email, password, token});

後はこの client に対して処理を行います。

通知の種類

Hexabaseで提供されている通知は、現時点ではデータストアのアイテム(RDBMSでいう行相当)に対するコメントの通知のみです。また、コメントは新規作成のみ対応しています。

PostItemComment | Hexabase API ガイド

通知の受け取り方

データは保存されている前提です。

const project = await client.currentWorkspace!.project(projectId);
const datastore = await project.datastore(datastoreId);
const item = await datastore.item();
item.set('name', '名前');
const bol = await item.save();

この保存したデータに対するコメント追加を購読します。 data は ItemSubscription という型になります。

item.subscribe('update', data => {
	console.log(data);
});

ItemSubscriptionには comment でコメントの内容や、 user でコメントしたユーザーの情報が取得できます。

通知の止め方

通知を止めるには、 unsubscribe を呼び出します。

item.unsubscribe();

まとめ

通知を使えば、擬似的にチャットのような機能が実現できます。アイテムに紐付くので、各アイテムがルームのような役割を果たします。

SlackやTeamsのように、チャット機能はさまざまなアプリケーションで求められます。Hexabaseを使えば、簡単に実装できますので、ぜひ試してください。

Hexabase | 新規事業向け開発・競争領域でのDX実現をサポート

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?