fix: write & reader posiiton

This commit is contained in:
2025-09-30 07:12:38 +07:00
parent d09d389011
commit 967b8a98b3

View File

@@ -259,6 +259,11 @@ func (wsClient *SafeWebsocketClient) connect() error {
wsClient.cancelFuncs = append(wsClient.cancelFuncs, cancel) wsClient.cancelFuncs = append(wsClient.cancelFuncs, cancel)
return nil return nil
}) })
writer, err := conn.NextWriter(websocket.TextMessage)
if err != nil {
return
}
for { for {
select { select {
case <-ctx.Done(): case <-ctx.Done():
@@ -269,19 +274,6 @@ func (wsClient *SafeWebsocketClient) connect() error {
wsClient.triggerReconnect() wsClient.triggerReconnect()
return return
} }
messageType := websocket.TextMessage
switch data.MessageType {
case MessageTypePing:
messageType = websocket.PingMessage
case MessageTypePong:
messageType = websocket.PongMessage
case MessageTypeClose:
messageType = websocket.CloseMessage
}
writer, err := conn.NextWriter(messageType)
if err != nil {
return
}
if _, err := writer.Write(data.Data); err != nil { if _, err := writer.Write(data.Data); err != nil {
return return
@@ -296,6 +288,10 @@ func (wsClient *SafeWebsocketClient) connect() error {
wsClient.cancelFuncs = append(wsClient.cancelFuncs, cancel) wsClient.cancelFuncs = append(wsClient.cancelFuncs, cancel)
return nil return nil
}) })
_, reader, err := conn.NextReader()
if err != nil {
return
}
for { for {
select { select {
case <-ctx.Done(): case <-ctx.Done():
@@ -309,12 +305,6 @@ func (wsClient *SafeWebsocketClient) connect() error {
fmt.Printf("error on read deadline: %v\n", err) fmt.Printf("error on read deadline: %v\n", err)
return return
} }
_, reader, err := conn.NextReader()
if err != nil {
fmt.Printf("Next Reader Closed: %v\n", err)
wsClient.triggerReconnect()
return
}
readerBytes, err := io.ReadAll(reader) readerBytes, err := io.ReadAll(reader)
if err != nil { if err != nil {