@@ -9,20 +9,41 @@ import (
99 "github.com/gorilla/websocket"
1010)
1111
12+ // SubscribeKlines :
13+ func (s * V5WebsocketPublicService ) SubscribeKlines (
14+ keys []V5WebsocketPublicKlineParamKey ,
15+ f func (V5WebsocketPublicKlineResponse ) error ,
16+ ) (func () error , error ) {
17+ return s .subscribeKlines (keys , f )
18+ }
19+
1220// SubscribeKline :
1321func (s * V5WebsocketPublicService ) SubscribeKline (
1422 key V5WebsocketPublicKlineParamKey ,
1523 f func (V5WebsocketPublicKlineResponse ) error ,
1624) (func () error , error ) {
17- if err := s .addParamKlineFunc (key , f ); err != nil {
18- return nil , err
25+ return s .subscribeKlines ([]V5WebsocketPublicKlineParamKey {key }, f )
26+ }
27+
28+ func (s * V5WebsocketPublicService ) subscribeKlines (
29+ keys []V5WebsocketPublicKlineParamKey ,
30+ f func (V5WebsocketPublicKlineResponse ) error ,
31+ ) (func () error , error ) {
32+ var args []interface {}
33+ for _ , key := range keys {
34+ if err := s .addParamKlineFunc (key , f ); err != nil {
35+ return nil , err
36+ }
37+
38+ args = append (args , key .Topic ())
1939 }
40+
2041 param := struct {
2142 Op string `json:"op"`
2243 Args []interface {} `json:"args"`
2344 }{
2445 Op : "subscribe" ,
25- Args : [] interface {}{ key . Topic ()} ,
46+ Args : args ,
2647 }
2748 buf , err := json .Marshal (param )
2849 if err != nil {
@@ -37,7 +58,7 @@ func (s *V5WebsocketPublicService) SubscribeKline(
3758 Args []interface {} `json:"args"`
3859 }{
3960 Op : "unsubscribe" ,
40- Args : [] interface {}{ key . Topic ()} ,
61+ Args : args ,
4162 }
4263 buf , err := json .Marshal (param )
4364 if err != nil {
@@ -46,7 +67,10 @@ func (s *V5WebsocketPublicService) SubscribeKline(
4667 if err := s .writeMessage (websocket .TextMessage , []byte (buf )); err != nil {
4768 return err
4869 }
49- s .removeParamKlineFunc (key )
70+
71+ for _ , key := range keys {
72+ s .removeParamKlineFunc (key )
73+ }
5074 return nil
5175 }, nil
5276}
0 commit comments