Discord Gateway API

WebSocket을 통해 Discord Gateway에 연결하여 메시지, 프레즌스, 길드, 음성 상태 이벤트에 실시간으로 반응하는 봇을 만들어 보세요.

TsgcWSAPI_Discord

Discord Gateway WebSocket API를 위한 타입이 지정된 Delphi/C++Builder 클라이언트예요 — 하트비트, 식별, 인텐트, 샤딩, 이벤트 디스패치를 처리해요.

컴포넌트 클래스

TsgcWSAPI_Discord

프로토콜

Discord Gateway

플랫폼

Windows, macOS, Linux, iOS, Android

에디션

Standard / Professional / Enterprise

컴포넌트를 추가하고, 토큰을 설정한 후, 이벤트를 수신하세요

TsgcWebSocketClient와 연결하고, Discord.Token과 Discord.Intents를 설정한 다음, OnDiscordMessageCreate / OnDiscordReady를 연결해 Gateway 이벤트를 처리하세요.

uses
  sgcWebSocket, sgcWebSocket_API_Discord;

var
  WSClient: TsgcWebSocketClient;
  Discord: TsgcWSAPI_Discord;
begin
  WSClient := TsgcWebSocketClient.Create(nil);

  Discord := TsgcWSAPI_Discord.Create(nil);
  Discord.Client := WSClient;
  Discord.Discord.Token := 'your-bot-token';

  Discord.OnDiscordReady := procedure(Connection: TsgcWSConnection;
    const aPayload: string)
  begin
    Memo1.Lines.Add('Discord ready');
  end;

  Discord.OnDiscordMessageCreate := procedure(Connection: TsgcWSConnection;
    const aMessage: string)
  begin
    Memo1.Lines.Add(aMessage);
  end;

  WSClient.Active := True;
end;
// uses: sgcWebSocket, sgcWebSocket_API_Discord
TsgcWebSocketClient *WSClient = new TsgcWebSocketClient(this);
TsgcWSAPI_Discord *Discord = new TsgcWSAPI_Discord(this);
Discord->Client = WSClient;
Discord->Discord->Token = "your-bot-token";

WSClient->Active = true;

내부 구성

TsgcWebSocketClient 위에 Discord Gateway 프로토콜을 구현해요: IDENTIFY, RESUME, HEARTBEAT, 디스패치 라우팅.

Gateway 핸드셰이크

연결 시 컴포넌트가 토큰, 인텐트, 속성과 함께 IDENTIFY를 보내요. 연결 해제 시 마지막 시퀀스 번호와 함께 RESUME을 보내 이벤트가 손실되지 않게 해요.

Heartbeat

Discord는 HELLO에서 게이트웨이가 반환하는 간격으로 opcode-1 HEARTBEAT 메시지를 요구해요. 컴포넌트가 이를 스케줄링하고 HEARTBEAT_ACK를 감시해 좀비 연결을 감지해요.

Intents

Discord.Intents는 게이트웨이가 전달할 이벤트 카테고리를 선택해요 (GUILD_MESSAGES, GUILD_MEMBERS, MESSAGE_CONTENT, VOICE_STATES — 전체 인텐트 비트마스크).

이벤트 디스패치

각 게이트웨이 디스패치 이벤트는 타입이 지정된 속성으로 표시돼요: OnDiscordReady, OnDiscordMessageCreate, OnDiscordGuildCreate, OnDiscordPresenceUpdate 등 다양해요.

음성 게이트웨이 훅

VOICE_STATE_UPDATEVOICE_SERVER_UPDATE 이벤트를 수신해요 — 음성 WebSocket 엔드포인트와 결합해 음성 채널 자동화를 구현할 수 있어요.

샤딩 지원

봇이 권장 길드 수를 초과할 때 Discord.ShardDiscord.ShardCount를 설정하여 Discord의 샤딩된 게이트웨이에 참여하세요.

사양 및 참조 문서

이 컴포넌트가 구현하는 API의 공식 참조 출처예요.

문서 및 데모

컴포넌트 참조 문서로 바로 이동하고, 바로 실행 가능한 데모 프로젝트를 받고, 체험판을 다운로드해 보세요.

온라인 도움말 — API_Discord 이 컴포넌트의 전체 속성, 메서드, 이벤트 참조 문서.
무료 체험판 — sgcWebSockets sgcWebSockets 체험판 패키지를 기반으로 Discord 봇을 만들어 보세요.
기술 문서 (PDF) 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플 및 1차 출처 참고 — 이 컴포넌트 전용.
사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서.

Discord 봇을 만들 준비가 됐나요?

무료 체험판을 다운로드하고, Delphi 애플리케이션에서 Discord Gateway에 연결해 보세요.