From 902f6bc6102be4ee64155697e60a1207f8ee658d Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Tue, 14 Apr 2026 01:16:59 +0300 Subject: [PATCH] feat(jazz): add password support for room joining --- internal/provider/jazz/api.go | 6 +++--- internal/provider/jazz/peer.go | 13 +++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/internal/provider/jazz/api.go b/internal/provider/jazz/api.go index 6522584..811c2c0 100644 --- a/internal/provider/jazz/api.go +++ b/internal/provider/jazz/api.go @@ -131,7 +131,7 @@ func createRoom(ctx context.Context) (*RoomInfo, error) { }, nil } -func joinRoom(ctx context.Context, roomID string) (*RoomInfo, error) { +func joinRoom(ctx context.Context, roomID, password string) (*RoomInfo, error) { clientID := uuid.New().String() headers := map[string]string{ "X-Jazz-ClientId": clientID, @@ -141,7 +141,7 @@ func joinRoom(ctx context.Context, roomID string) (*RoomInfo, error) { } preconnectPayload := map[string]any{ - "password": "", + "password": password, "jazzNextMigration": map[string]any{ "b2bBaseRoomSupport": true, "demoRoomBaseSupport": true, @@ -193,7 +193,7 @@ func joinRoom(ctx context.Context, roomID string) (*RoomInfo, error) { return &RoomInfo{ RoomID: roomID, - Password: "", + Password: password, ConnectorURL: preconnectResp.ConnectorURL, }, nil } diff --git a/internal/provider/jazz/peer.go b/internal/provider/jazz/peer.go index e590984..8d4ffc6 100644 --- a/internal/provider/jazz/peer.go +++ b/internal/provider/jazz/peer.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "log" + "strings" "sync" "sync/atomic" "time" @@ -49,9 +50,17 @@ func NewPeer(ctx context.Context, roomID, name string, onData func([]byte)) (*Pe if err != nil { return nil, fmt.Errorf("create room: %w", err) } - log.Printf("Jazz room created: %s (password: %s)", roomInfo.RoomID, roomInfo.Password) + log.Printf("Jazz room created: %s:%s", roomInfo.RoomID, roomInfo.Password) + log.Printf("To connect client use: -id \"%s:%s\"", roomInfo.RoomID, roomInfo.Password) } else { - roomInfo, err = joinRoom(ctx, roomID) + var password string + parts := strings.Split(roomID, ":") + if len(parts) == 2 { + roomID = parts[0] + password = parts[1] + } + + roomInfo, err = joinRoom(ctx, roomID, password) if err != nil { return nil, fmt.Errorf("join room: %w", err) }