ethgo
ethgo copied to clipboard
Need a way to detect connection errors of websocket
The error that occurred in stream reading is ignored now. https://github.com/umbracle/ethgo/blob/f671bdb5f607813d015068c18bf61bb54633ab9d/jsonrpc/transport/websocket.go#L91-L98
When we subscribe an event and get no messages, we can not know if the underlying websocket connection is healthy(the network may be down).
Maybe we should add a callback for all unexpected connection errors.
eg. Subscribe(method string, callback func(b []byte), errHandler func(err error)) (func() error, error)
The proposal sounds okay. Can you share the error you get from the stream?
The proposal sounds okay. Can you share the error you get from the stream?
I subscribed for new heads:
events := make(chan []byte, 10000)
closeFn, err = WsRPC.Subscribe("newHeads", func(b []byte) {
events <- b
})
Then disable the network, will get a CloseError from gorilla/websocket
:
https://github.com/gorilla/websocket/blob/af47554f343b4675b30172ac301638d350db34a5/conn.go#L105
