refactor(go): make raw topics the realtime source

This commit is contained in:
lingniu
2026-07-03 08:25:14 +08:00
parent c2d058bf75
commit 4c34c1221b
14 changed files with 151 additions and 44 deletions

View File

@@ -41,6 +41,7 @@ type TCPServer struct {
readBufferSize int
idleTimeout time.Duration
maxConnections int
publishUnified bool
}
type TCPServerConfig struct {
@@ -52,6 +53,7 @@ type TCPServerConfig struct {
ReadBufferSize int
IdleTimeout time.Duration
MaxConnections int
PublishUnified bool
}
const frameOperationTimeout = 30 * time.Second
@@ -96,6 +98,7 @@ func NewTCPServer(cfg TCPServerConfig) (*TCPServer, error) {
readBufferSize: cfg.ReadBufferSize,
idleTimeout: cfg.IdleTimeout,
maxConnections: cfg.MaxConnections,
publishUnified: cfg.PublishUnified,
}, nil
}
@@ -226,12 +229,14 @@ func (s *TCPServer) handleFrame(ctx context.Context, conn net.Conn, raw []byte,
if env.ParseStatus == envelope.ParseBadFrame {
return
}
if err := s.sink.PublishUnified(frameCtx, env); err != nil {
s.recordPublishMetric("unified", "error")
s.logger.Error("publish unified failed", "protocol", s.protocol.Protocol, "event_id", env.StableEventID(), "error", err)
return
if s.publishUnified {
if err := s.sink.PublishUnified(frameCtx, env); err != nil {
s.recordPublishMetric("unified", "error")
s.logger.Error("publish unified failed", "protocol", s.protocol.Protocol, "event_id", env.StableEventID(), "error", err)
return
}
s.recordPublishMetric("unified", "ok")
}
s.recordPublishMetric("unified", "ok")
if s.protocol.Respond == nil {
return
}