> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # UnixSocketPubSub `UnixSocketPubSub`는[`PubSub`](https://mastra.zisheng.pro/ko/reference/pubsub/base)Unix 도메인 소켓을 사용하여 단일 호스트의 프로세스 전체에 이벤트를 전달하는 구현입니다. 하나의 프로세스를 브로커로 선택하고 다른 프로세스는 클라이언트로 연결됩니다. 브로커가 종료되면 나머지 클라이언트는 자동으로 새 브로커를 선택합니다. Mastra Code 터미널 인터페이스에서 스레드 스트림을 조정하는 경우처럼 여러 로컬 프로세스가 스트림을 공유해야 할 때 사용하세요. 단일 프로세스 전송에는 [`EventEmitterPubSub`](https://mastra.zisheng.pro/ko/reference/pubsub/event-emitter)를 사용하세요. 호스트 간 분산 전송에는 [`RedisStreamsPubSub`](https://mastra.zisheng.pro/ko/reference/pubsub/redis-streams) 또는 [`GoogleCloudPubSub`](https://mastra.zisheng.pro/ko/reference/pubsub/google-cloud-pubsub)을 사용하세요. `UnixSocketPubSub`푸시 전송입니다. 이벤트는 읽기 루프 없이 도착하므로 Mastra는 이에 대해 풀 작업자를 실행하지 않습니다. ## 사용예 참여하는 모든 프로세스가 공유하는 소켓 경로를 전달합니다. ```typescript import { Mastra } from '@mastra/core' import { UnixSocketPubSub } from '@mastra/core/events' export const mastra = new Mastra({ pubsub: new UnixSocketPubSub('/tmp/mastra/events.sock'), }) ``` ## 생성자 매개변수 **socketPath** (`string`): Unix 도메인 소켓의 경로입니다. 스트림을 공유하는 모든 프로세스가 동일한 경로를 사용해야 합니다. **options** (`UnixSocketPubSubOptions`): 선택적 구성입니다. ## 속성 **socketPath** (`string`): 생성자에 전달된 소켓 경로입니다. **supportedModes** (`ReadonlyArray<"pull" | "push">`): \["push"]를 반환합니다. **isBroker** (`boolean`): 이 인스턴스가 현재 브로커 역할을 하는지 여부입니다. **remoteClientCount** (`number`): 이 브로커에 연결된 원격 클라이언트 수입니다. 이 인스턴스가 브로커가 아니면 항상 0입니다. ## 행동 양식 `UnixSocketPubSub`는 [`PubSub`](https://mastra.zisheng.pro/ko/reference/pubsub/base) 계약을 구현합니다. 아래 메서드는 이 구현에만 해당합니다. ### `close()` 소켓 연결을 닫고 이 인스턴스가 브로커인 경우 브로커 역할을 해제합니다. 정상적인 종료 중에 이를 호출하십시오. ```typescript await pubsub.close() ``` ## 브로커 선출 소켓을 바인딩하는 첫 번째 프로세스는 브로커가 되어 연결된 모든 클라이언트 간에 이벤트를 라우팅합니다. 다른 프로세스는 클라이언트로 연결됩니다. 브로커가 종료되면 배타적 잠금 파일이 다음 선택을 직렬화합니다. 정확히 한 명의 클라이언트가 새 브로커가 됩니다. 나머지 클라이언트는 이를 다시 구독합니다. 이렇게 하면 두 프로세스가 모두 브로커 역할을 하는 분할 브레인 상태를 방지할 수 있습니다.