Klien API JavaScript resmi untuk Stream Chat, layanan untuk membangun aplikasi obrolan.
Jelajahi dokumen »
Laporkan Bug · Fitur Permintaan
Anda dapat mendaftar akun Stream di halaman Memulai kami.
Library ini dapat digunakan oleh aplikasi frontend dan backend. Untuk frontend, kami memiliki kerangka kerja yang didasarkan pada perpustakaan ini seperti Flutter, React, dan Angular SDK. Untuk informasi lebih lanjut, lihat dokumen kami.
npm install stream-chat
yarn add stream-chat
< script src =" https://cdn.jsdelivr.net/npm/stream-chat " > </ script >
Klien StreamChat diatur untuk memungkinkan perluasan tipe dasar melalui penggunaan obat generik saat dipakai. Instansiasi default mengatur semua obat generik ke Record<string, unknown>
.
import { StreamChat } from 'stream-chat' ;
// Or if you are on commonjs
const StreamChat = require ( 'stream-chat' ) . StreamChat ;
const client = StreamChat . getInstance ( 'YOUR_API_KEY' , 'API_KEY_SECRET' ) ;
const channel = client . channel ( 'messaging' , 'TestChannel' ) ;
await channel . create ( ) ;
Atau Anda dapat menyesuaikan obat generiknya:
type ChatChannel = { image : string ; category ?: string } ;
type ChatUser1 = { nickname : string ; age : number ; admin ?: boolean } ;
type ChatUser2 = { nickname : string ; avatar ?: string } ;
type UserMessage = { country ?: string } ;
type AdminMessage = { priorityLevel : number } ;
type ChatAttachment = { originalURL ?: string } ;
type CustomReaction = { size ?: number } ;
type ChatEvent = { quitChannel ?: boolean } ;
type CustomCommands = 'giphy' ;
type StreamType = {
attachmentType : ChatAttachment ;
channelType : ChatChannel ;
commandType : CustomCommands ;
eventType : ChatEvent ;
messageType : UserMessage | AdminMessage ;
reactionType : CustomReaction ;
userType : ChatUser1 | ChatUser2 ;
} ;
const client = StreamChat . getInstance < StreamType > ( 'YOUR_API_KEY' , 'API_KEY_SECRET' ) ;
// Create channel
const channel = client . channel ( 'messaging' , 'TestChannel' ) ;
await channel . create ( ) ;
// Create user
await client . upsertUser ( {
id : 'vishal-1' ,
name : 'Vishal' ,
} ) ;
// Send message
const { message } = await channel . sendMessage ( { text : `Test message` } ) ;
// Send reaction
await channel . sendReaction ( message . id , { type : 'love' , user : { id : 'vishal-1' } } ) ;
Jenis khusus yang disediakan saat menginisialisasi klien akan diterapkan ke semua pengembalian klien dan memberikan kecerdasan pada kueri.
Jalankan di root repo ini
yarn link
Jalankan di root salah satu aplikasi contoh (SampleApp/TypeScriptMessaging) di repo stream-chat-react-native
yarn link stream-chat
yarn start
Buka file metro.config.js
dan tetapkan nilai untuk watchFolders sebagai
const streamChatRoot = '{{CHANGE_TO_THE_PATH_TO_YOUR_PROJECT}}/stream-chat-js'
module . exports = {
// the rest of the metro config goes here
...
watchFolders : [ projectRoot ] . concat ( alternateRoots ) . concat ( [ streamChatRoot ] ) ,
resolver : {
// the other resolver configurations go here
...
extraNodeModules : {
// the other extra node modules go here
...
'stream-chat' : streamChatRoot
}
}
} ;
Pastikan untuk mengganti {{CHANGE_TO_THE_PATH_TO_YOUR_PROJECT}}
dengan jalur yang benar untuk folder stream-chat-js
sesuai struktur direktori Anda.
Jalankan di root repo ini
yarn start
Kunjungi docs/typescript.md untuk contoh lainnya.
Kami menyambut perubahan kode yang meningkatkan pustaka ini atau memperbaiki masalah, pastikan untuk mengikuti semua praktik terbaik dan menambahkan pengujian jika berlaku sebelum mengirimkan Permintaan Tarik di Github. Kami sangat senang untuk menggabungkan kode Anda di repositori resmi. Pastikan untuk menandatangani Perjanjian Lisensi Kontributor (CLA) kami terlebih dahulu. Lihat file lisensi kami untuk lebih jelasnya.
Kunjungi CONTRIBUTING.md untuk beberapa tips pengembangan.
Kami baru saja menyelesaikan putaran pendanaan Seri B senilai $38 juta dan kami terus berkembang secara aktif. API kami digunakan oleh lebih dari satu miliar pengguna akhir, dan Anda akan memiliki peluang untuk memberikan pengaruh besar pada produk dalam tim yang terdiri dari insinyur terkuat di seluruh dunia.
Lihat lowongan kami saat ini dan lamar melalui situs web Stream.