From 37d1713247062b9a78ea29aa9e66c69e7d89ee25 Mon Sep 17 00:00:00 2001 From: jdhxyy Date: Thu, 5 Mar 2026 15:41:01 +0800 Subject: [PATCH] Solve the problem of incorrect handling of the SessionID field in PicoMessage --- pkg/channels/pico/pico.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/channels/pico/pico.go b/pkg/channels/pico/pico.go index 8d8b62a67..fda65a7a9 100644 --- a/pkg/channels/pico/pico.go +++ b/pkg/channels/pico/pico.go @@ -209,7 +209,7 @@ func (c *PicoChannel) broadcastToSession(chatID string, msg PicoMessage) error { if !ok { return true } - if pc.sessionID == sessionID { + if key == sessionID { if err := pc.writeJSON(msg); err != nil { logger.DebugCF("pico", "Write to connection failed", map[string]any{ "conn_id": pc.id, @@ -421,6 +421,11 @@ func (c *PicoChannel) handleMessageSend(pc *picoConn, msg PicoMessage) { sessionID := msg.SessionID if sessionID == "" { sessionID = pc.sessionID + } else { + // Check if sessionID already exists + if _, ok := c.connections.Load(sessionID); !ok { + c.connections.Store(sessionID, pc) + } } chatID := "pico:" + sessionID