nodejs
現在Concrntにはnodeのライブラリが存在しています。webクライアント実装であるconcrnt.worldもこのライブラリを利用して開発されているので、webクライアントでできるような投稿、購読、リアルタイムイベントの受信など、全ての機能をこのライブラリ経由で利用することができます。
ライブラリのインストール
pnpm i @concrnt/client @concrnt/worldlib
でライブラリをインストールすることができます。
Examples
ほかに欲しい例があれば、是非GitHubのリポジトリにIssueを立ててください。
投稿する
サブキーの持ち主のアカウントで、ホームタイムラインとarrival_loungeタイムラインに投稿する例です。
import { Client } from '@concrnt/worldlib'
const body = 'はろはろ'
const subkey = "concurrent-subkey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [email protected] totegamma"const client = await Client.createFromSubkey(subkey)
await client.createMarkdownCrnt( body, [client.user.homeTimeline, arrival_lounge],);
リアルタイムで投稿を受信する
サブキーの持ち主のアカウントの、ホームタイムラインに投稿されたメッセージをリアルタイムで受信する例です。
import { Client } from '@concrnt/worldlib'
const subkey = "concurrent-subkey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [email protected] totegamma"const client = await Client.createFromSubkey(subkey)
const subscription = await client.newSubscription()
subscription.on('MessageCreated', (message) => { console.log(message)})
subscription.listen([client.user.homeTimeline])
すると、次のようなデータが降ってきます。
{ timeline: 'world.concrnt.t-home@con1t0tey8uxhkqkd4wcp4hd4jedt7f0vfhk29xdd2', item: { resourceID: 'msn6mfn3xyp2g5ss00683ha87hm', timelineID: 'tv2zwpcdbz7m8tc6j067v1wnwtc', owner: 'con1t0tey8uxhkqkd4wcp4hd4jedt7f0vfhk29xdd2', cdate: '2024-06-21T02:38:40.013Z' }, document: { signer: 'con1t0tey8uxhkqkd4wcp4hd4jedt7f0vfhk29xdd2', type: 'message', schema: 'https://schema.concrnt.world/m/markdown.json', body: { body: '雨の中おべんと買いにいくか否か', emojis: {}, mentions: [], profileOverride: {} }, meta: { client: 'concrnt.world-concrnt-a01e35d' }, timelines: [ 'world.concrnt.t-home@con1t0tey8uxhkqkd4wcp4hd4jedt7f0vfhk29xdd2' ], signedAt: '2024-06-21T02:38:40.013Z', keyID: 'cck1x9ee0xf4s7qrjze4n85malrdkreqtujfzq8jqv' }, _document: '{"signer":"con1t0tey8uxhkqkd4wcp4hd4jedt7f0vfhk29xdd2","type":"message","schema":"https://schema.concrnt.world/m/markdown.json","body":{"body":"雨の中おべんと買いにいくか否か","emojis":{},"mentions":[],"profileOverride":{}},"meta":{"client":"concrnt.world-concrnt-a01e35d"},"timelines":["[email protected]","world.concrnt.t-home@con1t0tey8uxhkqkd4wcp4hd4jedt7f0vfhk29xdd2"],"signedAt":"2024-06-21T02:38:40.013Z","keyID":"cck1x9ee0xf4s7qrjze4n85malrdkreqtujfzq8jqv"}', signature: 'f97895a336debbd3ac2b5602856d37dcb8f0950cb27e735047534d45a83738005c31a5c44afe3ff9270726d6cbd31758a2e94cdb73a4e1ad9205fa568c30646501', resource: undefined}