From 169521697c04f5b5a06b3da51bf4cad56884d2b6 Mon Sep 17 00:00:00 2001
From: Anmol Sethi <hi@nhooyr.io>
Date: Mon, 18 May 2020 14:09:47 -0400
Subject: [PATCH] Add ping example

Closes #227
---
 autobahn_test.go |  5 +++--
 example_test.go  | 25 +++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/autobahn_test.go b/autobahn_test.go
index 5bf0062..7c735a3 100644
--- a/autobahn_test.go
+++ b/autobahn_test.go
@@ -36,11 +36,12 @@ var autobahnCases = []string{"*"}
 func TestAutobahn(t *testing.T) {
 	t.Parallel()
 
-	if os.Getenv("AUTOBAHN_TEST") == "" {
+	if os.Getenv("AUTOBAHN") == "" {
 		t.SkipNow()
 	}
 
-	if os.Getenv("AUTOBAHN_FAST") != "" {
+	if os.Getenv("AUTOBAHN") == "fast" {
+		// These are the slow tests.
 		excludedAutobahnCases = append(excludedAutobahnCases,
 			"9.*", "13.*", "12.*",
 		)
diff --git a/example_test.go b/example_test.go
index 632c4d6..d44bd53 100644
--- a/example_test.go
+++ b/example_test.go
@@ -135,6 +135,31 @@ func Example_crossOrigin() {
 	log.Fatal(err)
 }
 
+func ExampleConn_Ping() {
+	// Dials a server and pings it 5 times.
+
+	ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
+	defer cancel()
+
+	c, _, err := websocket.Dial(ctx, "ws://localhost:8080", nil)
+	if err != nil {
+		log.Fatal(err)
+	}
+	defer c.Close(websocket.StatusInternalError, "the sky is falling")
+
+	// Required to read the Pongs from the server.
+	ctx = c.CloseRead(ctx)
+
+	for i := 0; i < 5; i++ {
+		err = c.Ping(ctx)
+		if err != nil {
+			log.Fatal(err)
+		}
+	}
+
+	c.Close(websocket.StatusNormalClosure, "")
+}
+
 // This example demonstrates how to create a WebSocket server
 // that gracefully exits when sent a signal.
 //
-- 
GitLab