npm.io
2.0.1 • Published yesterday

@ocean-cloud-ring/sdk

Licence
UNLICENSED
Version
2.0.1
Deps
1
Size
224 kB
Vulns
0
Weekly
0

@ocean-cloud-ring/sdk

Ocean Ring için resmi JS/React SDK. Tek bir OceanRingClient üzerinden hem REST API'ye (ring-backend — workspace/channel/starred, client.api.*) hem de gerçek zamanlı servise (rtserver — WS mesajlaşma/presence/typing/ notification/call sinyalleşmesi, client.*) erişim sağlar. Stream.io'nun istemcisine benzer şekilde: tek client, birden çok host, otomatik fallback.

Kurulum

npm install @ocean-cloud-ring/sdk

Hızlı başlangıç

import { OceanRingClient } from '@ocean-cloud-ring/sdk';

const client = new OceanRingClient({
  // Gerçek zamanlı servis (rtserver): WS + upload/search/files/calls REST uçları
  rtUrl: 'https://api.oceanring.io',
  rtFallbackUrls: ['https://api-eu.oceanring.io'], // opsiyonel

  // REST API (ring-backend, genelde 01-api-gateway üzerinden): workspace/channel/starred
  apiUrl: 'https://graph.oceansln.com/v1.0',
  apiFallbackUrls: [], // opsiyonel

  reconnect: true,
});

await client.connect({ token: idToken, workspaceId, deviceType: 'web' });

// REST API
const { workspaces } = await client.api.workspace.list();
const channels = await client.api.channel.list(workspaceId);

// Gerçek zamanlı
client.on('message:new', (msg) => console.log('yeni mesaj', msg));
await client.sendMessage({ channelId, content: 'Merhaba' });

Çoklu host / fallback (Stream.io tarzı)

Her iki taraf (rt ve api) için ayrı birincil + fallback host listesi verilebilir. Bir host'a istek ağ hatasıyla başarısız olursa istemci otomatik olarak listedeki bir sonraki host'u dener ve hangisinin çalıştığını kısa süreliğine (60sn) hatırlar — bkz. src/urlResolver.ts (UrlResolver, fetchWithFallback). Sağlık kontrolü için her host'ta /health denenir; hiçbiri yanıt vermezse yine de birincil host ile devam edilir (offline'da anlamlı bir hata almak için).

import { UrlResolver, fetchWithFallback } from '@ocean-cloud-ring/sdk';
// Kendi REST entegrasyonlarınızda da aynı mekanizmayı kullanabilirsiniz.

React hook'ları

import {
  useConnection, useChannels, useMessages, useSendMessage, useTyping,
  useNotifications, useCall, useCallHistory,
  // REST API hook'ları (client.api.*)
  useWorkspaces, useWorkspaceMembersApi, useChannelsApi, useStarredItems,
  useSearch, useWorkspaceFiles,
} from '@ocean-cloud-ring/sdk';

Geriye dönük uyumluluk

Eski baseUrl alanı hâlâ desteklenir (rtUrl'e eşdeğerdir); apiUrl verilmezse rtUrl kullanılır (tek servisli/monolit kurulumlar için).

Geliştirme

npm install
npm run build   # tsc → dist/