Closed mmavka closed 8 months ago
How i can reconnect without panic?
panic: repeated read on failed websocket connection
@mmavka
I don't know if I am understanding the details,I think it is an implementation issue.
How about trying this?
I have made some changes to your code.
package main
import (
"context"
"fmt"
"log"
"github.com/hirokisan/bybit/v2"
"golang.org/x/sync/errgroup"
)
func main() {
if err := run(); err != nil {
log.Fatal(err)
}
}
func run() error {
client := bybit.NewClient()
res, err := client.Future().USDTPerpetual().Symbols()
if err != nil {
return err
}
wsClient := bybit.NewWebsocketClient()
svcRoot := wsClient.V5()
var eg errgroup.Group
for _, result := range res.Result {
name := result.Name
eg.Go(func() error {
svc, err := svcRoot.Public(bybit.CategoryV5Linear)
if err != nil {
fmt.Println(err)
}
_, err = svc.SubscribeKline(bybit.V5WebsocketPublicKlineParamKey{
Interval: bybit.Interval1,
Symbol: bybit.SymbolV5(name),
}, func(response bybit.V5WebsocketPublicKlineResponse) error {
fmt.Println(response)
return nil
})
WS(svc)
return nil
})
}
if err := eg.Wait(); err != nil {
return err
}
return nil
}
func WS(svc bybit.V5WebsocketPublicServiceI) {
svc.Start(context.Background(), func(isWebsocketClosed bool, err error) {
fmt.Println(svc, isWebsocketClosed, err)
WS(svc)
})
}
Thanks for the answer! I solved my issue. I had an implementation problem
Code
func main() {
client := bybit.NewClient()
res, err := client.Future().USDTPerpetual().Symbols()
if err != nil {
log.Fatal(err)
}
wsClient := bybit.NewWebsocketClient()
svcRoot := wsClient.V5()
svc, err := svcRoot.Public(bybit.CategoryV5Linear)
if err != nil {
fmt.Println(err)
}
for _, result := range res.Result {
name := result.Name
_, err = svc.SubscribeKline(bybit.V5WebsocketPublicKlineParamKey{
Interval: bybit.Interval1,
Symbol: bybit.SymbolV5(name),
}, func(response bybit.V5WebsocketPublicKlineResponse) error {
fmt.Println(response)
return nil
})
}
go WS(svc)
}
func WS(svc bybit.V5WebsocketPublicServiceI) {
for {
svc.Start(context.Background(), func(isWebsocketClosed bool, err error) {
fmt.Println(countErr, svc, isWebsocketClosed, err)
})
}
}
Testing now... ))
I'll close 👍
Hi. Thanks for the library
Code
I have error: