func (websocket *WebSocket) TLSConnectionState() *tls.ConnectionState {
	return websocket.tlsConnectionState
}
Returns the TLS connection state of the connection, if any.
package ws
import (
	"context"
	"crypto/tls"
	"encoding/base64"
	"fmt"
	"io/ioutil"
	"net"
	"net/http"
	"net/url"
	"path"
	"sync"
	"time"
	"github.com/gorilla/mux"
	"github.com/gorilla/websocket"
)
const (
	defaultWriteWait = 10 * time.Second
	defaultPongWait = 60 * time.Second
	defaultPingWait = defaultPongWait
	defaultPingPeriod = (defaultPongWait * 9) / 10
	maxMessageSize = 512
	defaultHandshakeTimeout = 30 * time.Second
	defaultSubProtocol = "ocpp1.6"
	defaultReconnectBackoff = 5 * time.Second
	defaultReconnectMaxBackoff = 2 * time.Minute
)
type ServerTimeoutConfig struct {
	WriteWait time.Duration
	PingWait  time.Duration
}
func NewServerTimeoutConfig() ServerTimeoutConfig {
	return ServerTimeoutConfig{WriteWait: defaultWriteWait, PingWait: defaultPingWait}
}
type ClientTimeoutConfig struct {
	WriteWait           time.Duration
	HandshakeTimeout    time.Duration
	PongWait            time.Duration
	PingPeriod          time.Duration
	ReconnectBackoff    time.Duration
	ReconnectMaxBackoff time.Duration
}
func NewClientTimeoutConfig() ClientTimeoutConfig {
	return ClientTimeoutConfig{
		WriteWait:           defaultWriteWait,
		HandshakeTimeout:    defaultHandshakeTimeout,
		PongWait:            defaultPongWait,
		PingPeriod:          defaultPingPeriod,
		ReconnectBackoff:    defaultReconnectBackoff,
		ReconnectMaxBackoff: defaultReconnectMaxBackoff,
	}
}
type Channel interface {
	ID() string
	RemoteAddr() net.Addr
	TLSConnectionState() *tls.ConnectionState
}
type WebSocket struct {
	connection         *websocket.Conn
	id                 string
	outQueue           chan []byte
	closeC             chan websocket.CloseError  
	forceCloseC        chan error                 
	pingMessage        chan []byte
	tlsConnectionState *tls.ConnectionState
}
func (websocket *WebSocket) ID() string {
	return websocket.id
}
func (websocket *WebSocket) RemoteAddr() net.Addr {
	return websocket.connection.RemoteAddr()
}