Skip to content

Commit ed57712

Browse files
committed
Remove NewClientFromURL and replace with NewClientConfigFromURL to better parallel NewHandler / DefaultHandlerConfig behavior (issue #3).
1 parent e1ec5bc commit ed57712

File tree

4 files changed

+18
-15
lines changed

4 files changed

+18
-15
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,11 @@ import "github.com/lampctl/go-sse"
3131
Create a client using:
3232

3333
```golang
34-
c, err := sse.NewClientFromURL("http://example.com/sse")
34+
cfg, err := sse.NewClientConfigFromURL("http://example.com/sse")
3535
if err != nil {
3636
// ...
3737
}
38+
c := sse.NewClient(cfg)
3839
```
3940

4041
You can now read events directly from the `c.Events` channel as they are received:

client.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,18 @@ type ClientConfig struct {
2323
Context context.Context
2424
}
2525

26+
// NewClientConfigFromURL creates a ClientConfig for the provided URL, which
27+
// can then be passed along to NewClient.
28+
func NewClientConfigFromURL(url string) (*ClientConfig, error) {
29+
r, err := http.NewRequest(http.MethodGet, url, nil)
30+
if err != nil {
31+
return nil, err
32+
}
33+
return &ClientConfig{
34+
Request: r,
35+
}, nil
36+
}
37+
2638
const defaultReconnectionTime = time.Second * 3
2739

2840
var errConnectionClosed = errors.New("connection was closed by the server")
@@ -137,18 +149,6 @@ func NewClient(cfg *ClientConfig) *Client {
137149
return c
138150
}
139151

140-
// NewClientFromURL creates a new SSE client for the provided URL. By default,
141-
// GET request is made by http.DefaultClient.
142-
func NewClientFromURL(url string) (*Client, error) {
143-
r, err := http.NewRequest(http.MethodGet, url, nil)
144-
if err != nil {
145-
return nil, err
146-
}
147-
return NewClient(&ClientConfig{
148-
Request: r,
149-
}), nil
150-
}
151-
152152
// Close disconnects and shuts down the client.
153153
func (c *Client) Close() {
154154
c.cancel()

client_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,11 @@ func TestClient(t *testing.T) {
147147
t.Fatalf("%s: %s", v.Name, serverErr)
148148
}
149149
}()
150-
c, err := NewClientFromURL(s.URL)
150+
cfg, err := NewClientConfigFromURL(s.URL)
151151
if err != nil {
152152
t.Fatalf("%s: %s", v.Name, err)
153153
}
154+
c := NewClient(cfg)
154155
defer c.Close()
155156
if err := v.Client(c); err != nil {
156157
t.Fatalf("%s: %s", v.Name, err)

handler_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,11 @@ func (h *testHandlerServerAndClient) CloseHandlerAndServer() {
3939
}
4040

4141
func (h *testHandlerServerAndClient) CreateClient() error {
42-
c, err := NewClientFromURL(h.Server.URL)
42+
cfg, err := NewClientConfigFromURL(h.Server.URL)
4343
if err != nil {
4444
return err
4545
}
46+
c := NewClient(cfg)
4647
h.Client = c
4748
return nil
4849
}

0 commit comments

Comments
 (0)