func (c *Context) IsWebsocket() bool {
	if strings.Contains(strings.ToLower(c.GetHeader("Connection")), "upgrade") &&
		strings.ToLower(c.GetHeader("Upgrade")) == "websocket" {
		return true
	}
	return false
}
IsWebsocket Is Websocket
package znet
import (
	"net/http"
	"net/textproto"
	"net/url"
	"strings"
	"github.com/sohaha/zlsgo/zstring"
)
func (c *Context) Host(full ...bool) string {
	scheme := c.Request.Header.Get("X-Forwarded-Proto")
	if scheme == "" {
		scheme = "https"
		if c.Request.TLS == nil {
			scheme = "http"
		}
	}
	host := c.Request.Host
	if len(full) > 0 && full[0] {
		host += c.Request.URL.String()
	}
	return scheme + "://" + host
}
func (c *Context) CompletionLink(link string) string {
	if strings.HasPrefix(link, "http://") || strings.HasPrefix(link, "https://") {
		return link
	}
	finalLink := zstring.Buffer()
	finalLink.WriteString(c.Host())
	if !strings.HasPrefix(link, "/") {
		finalLink.WriteString("/")
	}
	finalLink.WriteString(link)
	return finalLink.String()
}