Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9d9c971

Browse files
committed
Update docs
1 parent50952d7 commit9d9c971

File tree

5 files changed

+22
-21
lines changed

5 files changed

+22
-21
lines changed

‎README.md‎

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,9 @@
55

66
websocket is a minimal and idiomatic WebSocket library for Go.
77

8-
>**note**: I haven't been responsive for questions/reports on the issue tracker but I do
9-
>read through and there are no outstanding bugs. There are certainly some nice to haves
10-
>that I should merge in/figure out but nothing critical. I haven't given up on adding new
11-
>features and cleaning up the code further, just been busy. Should anything critical
12-
>arise, I will fix it.
13-
148
##Install
159

16-
```bash
10+
```sh
1711
go get nhooyr.io/websocket
1812
```
1913

@@ -23,18 +17,23 @@ go get nhooyr.io/websocket
2317
- First class[context.Context](https://blog.golang.org/context) support
2418
- Fully passes the WebSocket[autobahn-testsuite](https://github.com/crossbario/autobahn-testsuite)
2519
-[Zero dependencies](https://pkg.go.dev/nhooyr.io/websocket?tab=imports)
26-
- JSONand protobufhelpers in the[wsjson](https://pkg.go.dev/nhooyr.io/websocket/wsjson)and[wspb](https://pkg.go.dev/nhooyr.io/websocket/wspb) subpackages
20+
- JSON helpers in the[wsjson](https://pkg.go.dev/nhooyr.io/websocket/wsjson)subpackage
2721
- Zero alloc reads and writes
2822
- Concurrent writes
2923
-[Close handshake](https://pkg.go.dev/nhooyr.io/websocket#Conn.Close)
3024
-[net.Conn](https://pkg.go.dev/nhooyr.io/websocket#NetConn) wrapper
3125
-[Ping pong](https://pkg.go.dev/nhooyr.io/websocket#Conn.Ping) API
3226
-[RFC 7692](https://tools.ietf.org/html/rfc7692) permessage-deflate compression
27+
-[CloseRead](https://pkg.go.dev/nhooyr.io/websocket#Conn.CloseRead) helper for write only connections
3328
- Compile to[Wasm](https://pkg.go.dev/nhooyr.io/websocket#hdr-Wasm)
3429

3530
##Roadmap
3631

32+
-[ ] Ping pong heartbeat helper[#267](https://github.com/nhooyr/websocket/issues/267)
33+
-[ ] Graceful shutdown helper[#209](https://github.com/nhooyr/websocket/issues/209)
34+
-[ ] Assembly for WebSocket masking[#16](https://github.com/nhooyr/websocket/issues/16)
3735
-[ ] HTTP/2[#4](https://github.com/nhooyr/websocket/issues/4)
36+
-[ ] The holy grail[#402](https://github.com/nhooyr/websocket/issues/402)
3837

3938
##Examples
4039

@@ -51,7 +50,7 @@ http.HandlerFunc(func (w http.ResponseWriter, r *http.Request) {
5150
if err !=nil {
5251
// ...
5352
}
54-
defer c.Close(websocket.StatusInternalError,"the sky is falling")
53+
defer c.CloseNow()
5554

5655
ctx,cancel:= context.WithTimeout(r.Context(), time.Second*10)
5756
defercancel()
@@ -78,7 +77,7 @@ c, _, err := websocket.Dial(ctx, "ws://localhost:8080", nil)
7877
if err !=nil {
7978
// ...
8079
}
81-
defer c.Close(websocket.StatusInternalError,"the sky is falling")
80+
defer c.CloseNow()
8281

8382
err = wsjson.Write(ctx, c,"hi")
8483
if err !=nil {
@@ -110,12 +109,14 @@ Advantages of nhooyr.io/websocket:
110109
- Gorilla writes directly to a net.Conn and so duplicates features of net/http.Client.
111110
- Concurrent writes
112111
- Close handshake ([gorilla/websocket#448](https://github.com/gorilla/websocket/issues/448))
112+
-[CloseRead](https://pkg.go.dev/nhooyr.io/websocket#Conn.CloseRead) helper for write only connections
113113
- Idiomatic[ping pong](https://pkg.go.dev/nhooyr.io/websocket#Conn.Ping) API
114114
- Gorilla requires registering a pong callback before sending a Ping
115115
- Can target Wasm ([gorilla/websocket#432](https://github.com/gorilla/websocket/issues/432))
116-
- Transparent message buffer reuse with[wsjson](https://pkg.go.dev/nhooyr.io/websocket/wsjson)and[wspb](https://pkg.go.dev/nhooyr.io/websocket/wspb) subpackages
116+
- Transparent message buffer reuse with[wsjson](https://pkg.go.dev/nhooyr.io/websocket/wsjson)subpackage
117117
-[1.75x](https://github.com/nhooyr/websocket/releases/tag/v1.7.4) faster WebSocket masking implementation in pure Go
118118
- Gorilla's implementation is slower and uses[unsafe](https://golang.org/pkg/unsafe/).
119+
Soon we'll have assembly and be 4.5x faster[#326](https://github.com/nhooyr/websocket/pull/326)
119120
- Full[permessage-deflate](https://tools.ietf.org/html/rfc7692) compression extension support
120121
- Gorilla only supports no context takeover mode
121122
-[CloseRead](https://pkg.go.dev/nhooyr.io/websocket#Conn.CloseRead) helper ([gorilla/websocket#492](https://github.com/gorilla/websocket/issues/492))

‎doc.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
//
1414
// The examples are the best way to understand how to correctly use the library.
1515
//
16-
// The wsjsonand wspb subpackages contain helpers for JSON and protobuf messages.
16+
// The wsjsonsubpackage contain helpers for JSON and protobuf messages.
1717
//
1818
// More documentation at https://nhooyr.io/websocket.
1919
//

‎example_test.go‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func ExampleAccept() {
2020
log.Println(err)
2121
return
2222
}
23-
deferc.Close(websocket.StatusInternalError,"the sky is falling")
23+
deferc.CloseNow()
2424

2525
ctx,cancel:=context.WithTimeout(r.Context(),time.Second*10)
2626
defercancel()
@@ -50,7 +50,7 @@ func ExampleDial() {
5050
iferr!=nil {
5151
log.Fatal(err)
5252
}
53-
deferc.Close(websocket.StatusInternalError,"the sky is falling")
53+
deferc.CloseNow()
5454

5555
err=wsjson.Write(ctx,c,"hi")
5656
iferr!=nil {
@@ -71,7 +71,7 @@ func ExampleCloseStatus() {
7171
iferr!=nil {
7272
log.Fatal(err)
7373
}
74-
deferc.Close(websocket.StatusInternalError,"the sky is falling")
74+
deferc.CloseNow()
7575

7676
_,_,err=c.Reader(ctx)
7777
ifwebsocket.CloseStatus(err)!=websocket.StatusNormalClosure {
@@ -88,7 +88,7 @@ func Example_writeOnly() {
8888
log.Println(err)
8989
return
9090
}
91-
deferc.Close(websocket.StatusInternalError,"the sky is falling")
91+
deferc.CloseNow()
9292

9393
ctx,cancel:=context.WithTimeout(r.Context(),time.Minute*10)
9494
defercancel()
@@ -145,7 +145,7 @@ func ExampleConn_Ping() {
145145
iferr!=nil {
146146
log.Fatal(err)
147147
}
148-
deferc.Close(websocket.StatusInternalError,"the sky is falling")
148+
deferc.CloseNow()
149149

150150
// Required to read the Pongs from the server.
151151
ctx=c.CloseRead(ctx)
@@ -162,10 +162,10 @@ func ExampleConn_Ping() {
162162

163163
// This example demonstrates full stack chat with an automated test.
164164
funcExample_fullStackChat() {
165-
// https://github.com/nhooyr/websocket/tree/master/examples/chat
165+
// https://github.com/nhooyr/websocket/tree/master/internal/examples/chat
166166
}
167167

168168
// This example demonstrates a echo server.
169169
funcExample_echo() {
170-
// https://github.com/nhooyr/websocket/tree/master/examples/echo
170+
// https://github.com/nhooyr/websocket/tree/master/internal/examples/echo
171171
}

‎internal/examples/chat/chat.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func (cs *chatServer) subscribeHandler(w http.ResponseWriter, r *http.Request) {
7474
cs.logf("%v",err)
7575
return
7676
}
77-
deferc.Close(websocket.StatusInternalError,"")
77+
deferc.CloseNow()
7878

7979
err=cs.subscribe(r.Context(),c)
8080
iferrors.Is(err,context.Canceled) {

‎internal/examples/echo/server.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func (s echoServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
2828
s.logf("%v",err)
2929
return
3030
}
31-
deferc.Close(websocket.StatusInternalError,"the sky is falling")
31+
deferc.CloseNow()
3232

3333
ifc.Subprotocol()!="echo" {
3434
c.Close(websocket.StatusPolicyViolation,"client must speak the echo subprotocol")

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp