Skip to content

Commit 947cab8

Browse files
committed
fix websocket error catching
1 parent 0b092b6 commit 947cab8

File tree

5 files changed

+38
-17
lines changed

5 files changed

+38
-17
lines changed

Diff for: README.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ instance := chatnio.NewInstanceFromEnv("CHATNIO_TOKEN")
3030

3131
- Chat
3232
```go
33-
chat := instance.NewChat(-1) // id -1: creating new chat
33+
chat, err := instance.NewChat(-1) // id -1: creating new chat
34+
if err != nil {
35+
panic(err)
36+
}
3437

3538
// using hook
3639
chat.AskStream(&chatnio.ChatRequestForm{

Diff for: chat.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,18 @@ type ChatPartialResponse struct {
2727
End bool `json:"end"`
2828
}
2929

30-
func (i *Instance) NewChat(id int) *Chat {
30+
func (i *Instance) NewChat(id int) (*Chat, error) {
31+
conn, err := utils.NewWebsocket(i.GetChatEndpoint())
32+
if err != nil {
33+
return nil, err
34+
}
35+
3136
return &Chat{
3237
Id: id,
3338
Uri: i.GetChatEndpoint(),
3439
Token: i.GetApiKey(),
35-
Conn: utils.NewWebsocket(i.GetChatEndpoint()),
36-
}
40+
Conn: conn,
41+
}, nil
3742
}
3843

3944
func (c *Chat) Send(v interface{}) bool {

Diff for: chat_test.go

+12-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@ func TestChat_AskStream(t *testing.T) {
1111
return
1212
}
1313

14-
chat := instance.NewChat(-1)
14+
chat, err := instance.NewChat(-1)
15+
if err != nil {
16+
t.Errorf(fmt.Sprintf("error occurred: %s", err.Error()))
17+
return
18+
}
19+
1520
defer chat.DeferClose()
1621

1722
chat.AskStream(&ChatRequestForm{
@@ -27,9 +32,14 @@ func TestChat_Ask(t *testing.T) {
2732
return
2833
}
2934

30-
chat := instance.NewChat(-1)
35+
chat, err := instance.NewChat(-1)
3136
defer chat.DeferClose()
3237

38+
if err != nil {
39+
t.Errorf(fmt.Sprintf("error occurred: %s", err.Error()))
40+
return
41+
}
42+
3343
channel := make(chan ChatPartialResponse)
3444
chat.Ask(&ChatRequestForm{
3545
Message: "hello",

Diff for: utils/websocket.go

+10-8
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,17 @@ type WebSocket struct {
1010
Cursor int
1111
}
1212

13-
func NewWebsocket(url string) *WebSocket {
14-
if conn, _, err := websocket.DefaultDialer.Dial(url, nil); err != nil {
15-
return nil
16-
} else {
17-
return &WebSocket{
18-
Conn: conn,
19-
Cursor: 0,
20-
}
13+
func NewWebsocket(url string) (ws *WebSocket, err error) {
14+
conn, _, err := websocket.DefaultDialer.Dial(url, nil)
15+
if err != nil {
16+
return
17+
}
18+
19+
ws = &WebSocket{
20+
Conn: conn,
21+
Cursor: 0,
2122
}
23+
return
2224
}
2325

2426
func (w *WebSocket) GetCursor() int {

Diff for: utils/websocket_test.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package utils
22

33
import (
4+
"fmt"
45
"testing"
56
)
67

78
func TestNewWebsocket(t *testing.T) {
8-
ws := NewWebsocket("wss://api.chatnio.net/chat")
9-
if ws == nil {
10-
t.Error("websocket is nil")
9+
_, err := NewWebsocket("wss://api.chatnio.net/chat")
10+
if err != nil {
11+
t.Errorf(fmt.Sprintf("error occurred: %s", err.Error()))
1112
}
1213
}

0 commit comments

Comments
 (0)