@@ -20,7 +20,6 @@ type HTTPTransport struct {
2020 closeHandler func ()
2121 mu sync.RWMutex
2222 addr string
23- responseMap map [int64 ]chan * transport.BaseJsonRpcMessage
2423}
2524
2625// NewHTTPTransport creates a new HTTP transport that listens on the specified endpoint
@@ -29,7 +28,6 @@ func NewHTTPTransport(endpoint string) *HTTPTransport {
2928 baseTransport : newBaseTransport (),
3029 endpoint : endpoint ,
3130 addr : ":8080" , // Default port
32- responseMap : make (map [int64 ]chan * transport.BaseJsonRpcMessage ),
3331 }
3432}
3533
@@ -55,14 +53,27 @@ func (t *HTTPTransport) Start(ctx context.Context) error {
5553// Send implements Transport.Send
5654func (t * HTTPTransport ) Send (ctx context.Context , message * transport.BaseJsonRpcMessage ) error {
5755 key := message .JsonRpcResponse .Id
58- responseChannel := t .responseMap [int64 (key )]
56+ fmt .Printf ("[Send] Attempting to send response with key: %d\n " , key )
57+
58+ responseChannel := t .baseTransport .responseMap [int64 (key )]
5959 if responseChannel == nil {
60+ fmt .Printf ("[Send] Response map keys: %v\n " , t .getResponseMapKeys ())
61+
6062 return fmt .Errorf ("no response channel found for key: %d" , key )
6163 }
6264 responseChannel <- message
6365 return nil
6466}
6567
68+ // Helper method to get keys
69+ func (t * HTTPTransport ) getResponseMapKeys () []int64 {
70+ keys := make ([]int64 , 0 , len (t .baseTransport .responseMap ))
71+ for k := range t .baseTransport .responseMap {
72+ keys = append (keys , k )
73+ }
74+ return keys
75+ }
76+
6677// Close implements Transport.Close
6778func (t * HTTPTransport ) Close () error {
6879 if t .server != nil {
@@ -94,6 +105,7 @@ func (t *HTTPTransport) SetErrorHandler(handler func(error)) {
94105func (t * HTTPTransport ) SetMessageHandler (handler func (ctx context.Context , message * transport.BaseJsonRpcMessage )) {
95106 t .mu .Lock ()
96107 defer t .mu .Unlock ()
108+ t .baseTransport .messageHandler = handler
97109 t .messageHandler = handler
98110}
99111
0 commit comments