Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Foundry 토큰으로 WebSocket 서버 연결

Foundry 인증 WebSocket Listener는 기본 플랫폼 도메인의 wss:// 엔드포인트를 제공합니다. 클라이언트의 Foundry 토큰과 Listener 및 기반 Compute Module에 대한 권한을 확인한 뒤, 모듈 안의 WebSocket 서버로 연결을 전달합니다. 별도 Listener 하위 도메인은 필요하지 않습니다.

생성과 서버 시작

  1. Data Connection > Listeners에서 Create new listener를 선택하고 WebSocket 커넥터 Foundry를 선택합니다.
  2. 설정을 완료하고 Enable listener를 켠 뒤 생성된 wss:// 엔드포인트를 복사합니다.
  3. Listener의 Configuration에서 자동 생성된 Compute Module을 엽니다.
  4. 사용자 지정 WebSocket 서버를 실행하는 컨테이너를 구성하고 모듈을 시작합니다.

커넥터가 보이지 않으면 Palantir 지원팀에 사용 가능 여부를 문의합니다. 기본 도메인을 사용하더라도 플랫폼 인스턴스의 인바운드 허용 규칙은 적용됩니다.

서버가 받아야 하는 주소

Foundry는 Compute Module 내부의 ws://localhost:5000/으로 연결을 전달합니다. 서버는 다음 조건을 충족해야 합니다.

  • 0.0.0.0의 포트 5000에 바인딩합니다.
  • 경로 /에서 WebSocket Upgrade 요청을 받습니다.
  • 공개 Listener 엔드포인트의 경로가 서버로 전달될 것이라고 가정하지 않습니다. 내부 주소는 고정되어 있습니다.

클라이언트의 Foundry 토큰은 서버로 전달되지 않습니다. 서버가 Foundry 리소스를 읽거나 쓰려면 Compute Module의 입력과 출력에 필요한 리소스 접근을 구성합니다. 반출 가능한 보안 표지 조건도 계속 적용됩니다.

클라이언트 인증

HTTP 헤더를 지정할 수 있는 클라이언트는 WebSocket Upgrade 요청의 Authorization 헤더에 Bearer 와 Foundry 토큰을 이어 붙인 값을 보냅니다.

브라우저 클라이언트는 WebSocket 하위 프로토콜에 토큰을 전달합니다. 다음 함수의 두 인수에는 복사한 실제 엔드포인트와 호출자의 실제 토큰을 전달합니다. 함수는 연결을 시작한 브라우저 WebSocket 객체를 반환하므로 호출자가 open, message, error, close 이벤트를 처리합니다.

export function connectFoundryListener(listenerEndpointUrl, foundryToken) {
    return new WebSocket(listenerEndpointUrl, [`Bearer-${foundryToken}`]);
}

연결 후 텍스트와 바이너리 메시지를 양방향으로 주고받을 수 있습니다. 서버가 어떤 메시지 형식을 받을지는 배포한 WebSocket 서버의 인터페이스에 맞춥니다.