기본 스트리밍
실시간 샘플링된 게시물에 연결:import { Client } from '@xdevplatform/xdk';
const client: Client = new Client({ bearerToken: 'your-bearer-token' });
// 1% sampled public posts
const stream = await client.stream.postsSample({
tweetFields: ['id','text','created_at'],
expansions: ['author_id'],
userFields: ['id','username','name']
});
// Listen to events
stream.on('data', (event) => {
// event is the parsed JSON line (data/includes/matching_rules)
console.log('New data:', event);
});
stream.on('error', (e) => console.error('Stream error:', e));
stream.on('close', () => console.log('Stream closed'));
import { Client } from '@xdevplatform/xdk';
const client = new Client({ bearerToken: 'your-bearer-token' });
const stream = await client.stream.postsSample({ tweetFields: ['id','text'] });
stream.on('data', (event) => {
console.log('New data:', event);
});
stream.on('error', (e) => console.error('Stream error:', e));
stream.on('close', () => console.log('Stream closed'));
비동기 반복
비동기 반복으로 스트림 사용:const stream = await client.stream.postsSample();
for await (const event of stream) {
// Each event is a parsed JSON line (data/includes/matching_rules)
console.log(event);
}
const stream = await client.stream.postsSample();
for await (const event of stream) {
console.log(event);
}
스트림 관리
이벤트 기반 스트림의 라이프사이클 제어:// Close the stream
stream.close();
// Auto-reconnect (if enabled by your wrapper)
// The default EventDrivenStream exposes basic reconnect hooks
오류 처리
스트리밍 오류 및 재연결 처리:stream.on('error', (event) => {
const err = event.error || event;
console.error('Stream error:', err);
});
stream.on('keepAlive', () => {
// heartbeat event
});
Javascript/TypeScript XDK를 사용하는 자세한 코드 예제는 코드 샘플 GitHub 저장소를 확인하세요.