goch Go로 작성된 자체 호스팅 라이브 채팅 서버입니다.
이를 통해 자체 인프라에서 라이브 채팅 소프트웨어를 실행할 수 있습니다.
두 명 이상의 사용자가 동시에 있을 수 있는 여러 개의 비공개 및 공개 채팅방을 만들 수 있습니다.
통신을 위해 RESTful 엔드포인트, 웹소켓, NATS 스트리밍 및 Redis를 사용합니다.
goch 많은 기능과 수정 사항이 추가된 Gossip의 포크입니다.
goch 로컬에서 실행하려면 docker
, docker-compose
및 go
설치되어 경로에 설정되어 있어야 합니다. 프로젝트를 다운로드/복제한 후 바이너리를 컴파일하고 goch , NATS Streaming 및 Redis를 사용하여 docker-compose를 실행하는 ./up
실행합니다. 오류가 없다면 goch localhost(포트 8080)에서 실행되어야 합니다.
서버를 실행하려면 ADMIN_USERNAME
및 ADMIN_PASSWORD
환경 변수를 설정해야 합니다. 저장소에서는 각각 admin
과 pass
로 설정되어 있지만 보안상의 이유로 당연히 변경해야 합니다.
서버가 실행되면 다음 경로를 사용할 수 있습니다.
POST /admin/channels
: 새 채널을 생성합니다. 채널에 고유한 이름(일반적으로 ID)을 제공해야 하며 응답에는 나중에 채널에 연결하는 데 사용되는 채널의 비밀이 포함됩니다. 이 엔드포인트는 제공된 관리자 자격 증명을 사용하여 서버 측에서 호출되어야 합니다. 나중에 채널에 연결하려면 응답을 저장해야 합니다.
POST /register
: 채널에 사용자를 등록합니다. 채널을 등록하려면 UID, DisplayName, ChannelSecret 및 ChannelName을 제공해야 합니다. 선택적으로 사용자 비밀을 제공해야 하지만, 그렇지 않은 경우 서버는 비밀을 생성하고 반환합니다.
GET /connect
: 채팅에 연결하고 채팅 기록과 함께 WebSocket 연결을 반환합니다. 채널, UID, 비밀 정보를 제공해야 합니다. 선택적으로 LastSeq(UNIX 타임스탬프) 이후에만 채팅 기록을 반환하는 LastSeq가 제공됩니다.
나머지 경로는 '도우미'로만 사용됩니다.
GET /channels/{name}?secret=$SECRET
: 채널의 멤버 목록을 반환합니다. 채널 이름은 URL 매개변수로, 채널 비밀번호는 쿼리 매개변수로 제공되어야 합니다.
GET /admin/channels
: 사용 가능한 모든 채널 목록을 반환합니다.
GET /admin/channels/{name}/user/{uid}
: 사용자의 채팅에서 읽지 않은 메시지 목록을 반환합니다.
goch MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 확인하세요.
에미르 리빅