diff --git a/_examples/websocket/README.md b/_examples/websocket/README.md index 35ca1cbd..c7d9c68f 100644 --- a/_examples/websocket/README.md +++ b/_examples/websocket/README.md @@ -45,8 +45,11 @@ type Config struct { // The request is an argument which you can use to generate the ID (from headers for example). // If empty then the ID is generated by DefaultIDGenerator: randomString(64) IDGenerator func(ctx context.Context) string - - Error func(w http.ResponseWriter, r *http.Request, status int, reason error) + // Error is the function that will be fired if any client couldn't upgrade the HTTP connection + // to a websocket connection, a handshake error. + Error func(w http.ResponseWriter, r *http.Request, status int, reason error) + // CheckOrigin a function that is called right before the handshake, + // if returns false then that client is not allowed to connect with the websocket server. CheckOrigin func(r *http.Request) bool // HandshakeTimeout specifies the duration for the handshake to complete. HandshakeTimeout time.Duration diff --git a/_examples/websocket/chat/websockets.html b/_examples/websocket/chat/websockets.html index bd594cc3..3604bfd0 100644 --- a/_examples/websocket/chat/websockets.html +++ b/_examples/websocket/chat/websockets.html @@ -1,39 +1,45 @@ + + + + +

+
 
+
 
\ No newline at end of file
diff --git a/websocket/config.go b/websocket/config.go
index a356eb50..4280c8e9 100644
--- a/websocket/config.go
+++ b/websocket/config.go
@@ -41,8 +41,11 @@ type Config struct {
 	// The request is an argument which you can use to generate the ID (from headers for example).
 	// If empty then the ID is generated by DefaultIDGenerator: randomString(64)
 	IDGenerator func(ctx context.Context) string
-
-	Error       func(w http.ResponseWriter, r *http.Request, status int, reason error)
+	// Error is the function that will be fired if any client couldn't upgrade the HTTP connection
+	// to a websocket connection, a handshake error.
+	Error func(w http.ResponseWriter, r *http.Request, status int, reason error)
+	// CheckOrigin a function that is called right before the handshake,
+	// if returns false then that client is not allowed to connect with the websocket server.
 	CheckOrigin func(r *http.Request) bool
 	// HandshakeTimeout specifies the duration for the handshake to complete.
 	HandshakeTimeout time.Duration
@@ -57,7 +60,7 @@ type Config struct {
 	// PongTimeout allowed to read the next pong message from the connection.
 	// Default value is 60 * time.Second
 	PongTimeout time.Duration
-	// PingPeriod send ping messages to the connection with this period. Must be less than PongTimeout.
+	// PingPeriod send ping messages to the connection within this period. Must be less than PongTimeout.
 	// Default value is 60 *time.Second
 	PingPeriod time.Duration
 	// MaxMessageSize max message size allowed from connection.
@@ -65,18 +68,20 @@ type Config struct {
 	MaxMessageSize int64
 	// BinaryMessages set it to true in order to denotes binary data messages instead of utf-8 text
 	// compatible if you wanna use the Connection's EmitMessage to send a custom binary data to the client, like a native server-client communication.
-	// defaults to false
+	// Default value is false
 	BinaryMessages bool
-	// ReadBufferSize is the buffer size for the underline reader
+	// ReadBufferSize is the buffer size for the connection reader.
 	// Default value is 4096
 	ReadBufferSize int
-	// WriteBufferSize is the buffer size for the underline writer
+	// WriteBufferSize is the buffer size for the connection writer.
 	// Default value is 4096
 	WriteBufferSize int
 	// EnableCompression specify if the server should attempt to negotiate per
 	// message compression (RFC 7692). Setting this value to true does not
 	// guarantee that compression will be supported. Currently only "no context
 	// takeover" modes are supported.
+	//
+	// Defauls to false and it should be remain as it is, unless special requirements.
 	EnableCompression bool
 
 	// Subprotocols specifies the server's supported protocols in order of
diff --git a/websocket/connection.go b/websocket/connection.go
index 2d6a93da..ce887e95 100644
--- a/websocket/connection.go
+++ b/websocket/connection.go
@@ -67,8 +67,8 @@ func (r *ConnectionValues) Reset() {
 	*r = (*r)[:0]
 }
 
-// UnderlineConnection is used for compatible with fasthttp and net/http underline websocket libraries
-// we only need ~8 funcs from websocket.Conn so:
+// UnderlineConnection is the underline connection, nothing to think about,
+// it's used internally mostly but can be used for extreme cases with other libraries.
 type UnderlineConnection interface {
 	// SetWriteDeadline sets the write deadline on the underlying network
 	// connection. After a write has timed out, the websocket state is corrupt and
@@ -118,13 +118,13 @@ type UnderlineConnection interface {
 // -------------------------------------------------------------------------------------
 
 type (
-	// DisconnectFunc is the callback which fires when a client/connection closed
+	// DisconnectFunc is the callback which is fired when a client/connection closed
 	DisconnectFunc func()
-	// LeaveRoomFunc is the callback which fires when a client/connection leaves from any room.
+	// LeaveRoomFunc is the callback which is fired when a client/connection leaves from any room.
 	// This is called automatically when client/connection disconnected
 	// (because websocket server automatically leaves from all joined rooms)
 	LeaveRoomFunc func(roomName string)
-	// ErrorFunc is the callback which fires when an error happens
+	// ErrorFunc is the callback which fires whenever an error occurs
 	ErrorFunc (func(string))
 	// NativeMessageFunc is the callback for native websocket messages, receives one []byte parameter which is the raw client's message
 	NativeMessageFunc func([]byte)
@@ -155,26 +155,26 @@ type (
 		// then  you use it to receive user information, for example: from headers
 		Context() context.Context
 
-		// OnDisconnect registers a callback which fires when this connection is closed by an error or manual
+		// OnDisconnect registers a callback which is fired when this connection is closed by an error or manual
 		OnDisconnect(DisconnectFunc)
 		// OnError registers a callback which fires when this connection occurs an error
 		OnError(ErrorFunc)
 		// OnPing  registers a callback which fires on each ping
 		OnPing(PingFunc)
-		// FireStatusCode can be used to send a custom error message to the connection
+		// FireOnError can be used to send a custom error message to the connection
 		//
-		// It does nothing more than firing the OnError listeners. It doesn't sends anything to the client.
+		// It does nothing more than firing the OnError listeners. It doesn't send anything to the client.
 		FireOnError(errorMessage string)
-		// To defines where server should send a message
-		// returns an emitter to send messages
+		// To defines on what "room" (see Join) the server should send a message
+		// returns an Emmiter(`EmitMessage` & `Emit`) to send messages.
 		To(string) Emitter
 		// OnMessage registers a callback which fires when native websocket message received
 		OnMessage(NativeMessageFunc)
-		// On registers a callback to a particular event which fires when a message to this event received
+		// On registers a callback to a particular event which is fired when a message to this event is received
 		On(string, MessageFunc)
-		// Join join a connection to a room, it doesn't check if connection is already there, so care
+		// Join registers this connection to a room, if it doesn't exist then it creates a new. One room can have one or more connections. One connection can be joined to many rooms. All connections are joined to a room specified by their `ID` automatically.
 		Join(string)
-		// Leave removes a connection from a room
+		// Leave removes this connection entry from a room
 		// Returns true if the connection has actually left from the particular room.
 		Leave(string) bool
 		// OnLeave registers a callback which fires when this connection left from any joined room.