자동 번역이 페이지는 자동으로 번역되었습니다. 영어 원문이 기준입니다.이 페이지를 영어로 읽어보세요

나만의 봇 호스팅

Disband는 당신의 봇을 호스팅하거나 실행하지 않습니다. 당신은 원하는 곳에서 클라이언트를 실행하고, 봇 토큰을 사용하여 긴 주기적인 게이트웨이를 통해 Disband와 대화합니다. 이 페이지는 봇을 계속 실행하는 실용적인 측면을 다룹니다.

어디서 실행해야 하나요?

아웃바운드 HTTPS 요청을 수행할 수 있는 모든 기기가 작동합니다. 게이트웨이가 장기 대기(귀하의 코드가 연결을 열어두고 있으며 Disband가 이벤트가 도착하면 이벤트를 반환함)이기 때문에 공개 주소, 인바운드 포트 또는 웹소켓이 필요하지 않습니다.

좋은 옵션들, 가장 저렴한 것부터:

호스트 메모
노트북/데스크탑 당신이 온라인 상태일 때 개인용 봇에 적합합니다.
작은 VPS(1GB RAM) ~$4–6/월; JavaScript 클라이언트는 거의 아무것도 필요로 하지 않는다.
클라우드 함수 / 워커 플랫폼이 오래 지속되는 프로세스를 허용하는 경우 서버리스가 작동합니다. 클라이언트는 저렴하게 재시작할 수 있을 정도로 상태가 없습니다.
컨테이너 / 프테라도케투스 클라이언트는 런타임 의존성이 없으므로 어떤 이미지라도 작동합니다.

당신이 실제로 필요한 것

데이터베이스도, 대기열도, 설치할 프레임워크도 없습니다.

그것을 살아있게 유지하기

게이트웨이는 스스로 영원히 루프를 돌립니다; 자동으로 다시 연결되고 재시도합니다. 세 가지가 실제 봇을 죽일 가능성이 있습니다:

  1. 크래시 루프. 클라이언트를 슈퍼바이저로 감싸고 실패 시 다시 시작하세요:

    # systemd
    [Unit]
    Description=disband-bot
    After=network-online.target
    
    [Service]
    ExecStart=/usr/local/bin/node /opt/my-bot/index.js
    Restart=always
    RestartSec=3
    Environment=DISBAND_BOT_TOKEN=…
    
    [Install]
    WantedBy=multi-user.target
    
  2. 상한 토큰. 만약 봇이 취소된다면 (또는 초대장이 만료되기 전에 승인됨), 게이트웨이 API는 401를 반환합니다. 처리하세요: 명확하게 로그를 기록하고 멈추세요, 영원히 다시 시도하는 것보다. 두 클라이언트 모두 이것을 error 이벤트로 표시합니다. JavaScript의 AuthError / Python의 AuthError - 그리고 그 루프가 대신 멈춥니다 타격의.

  3. 무음 구성 미끄러짐. 토큰을 환경 변수나 비밀에 저장하세요. 소스 안, 저장함. 토큰을 회전시키면, 프로세스를 다시 시작하세요. 새로운 가치.

데이터 읽기 및 쓰기

봇은 스코프 지정된 HTTP API만 대화합니다. 상태를 폴링하거나 유지하려면 이미 운영 중인 모든 저장소(파일, 데이터베이스, Redis)를 사용하세요. 클라이언트는 신경 쓰지 않습니다.

멀티 서버 봇

봇은 여러 서버에 초대될 수 있습니다. 승인된 스코프는 서버별로 있으므로 모든 곳에서 메시지를 읽을 수 있는 봇도 소유자가 messages.write를 부여한 곳에만 작성할 수 있습니다. 동작이 서버마다 다를 필요가 있는 경우 코드는 message.server_id에서 분기할 수 있습니다.

더 나아가다