package main

// import (
// 	"fmt"
// 	"net/http"

// 	"github.com/gorilla/websocket"
// )

// type Message struct {
// 	Name string      `json:"name"`
// 	Data interface{} `json:"data"`
// }

// type Client struct {
// 	send   chan Message
// 	socket *websocket.Conn
// 	// findHandler FindHandler
// 	// session     *r.Session
// }

// type Handler func(*Client, interface{})

// var upgrader = websocket.Upgrader{
// 	ReadBufferSize:  1024,
// 	WriteBufferSize: 1024,
// 	CheckOrigin:     func(r *http.Request) bool { return true },
// }

// type Router struct {
// 	rules map[string]Handler
// 	// session *r.Session
// }

// func NewRouter() *Router {
// 	return &Router{
// 		rules: make(map[string]Handler),
// 		// session: session,
// 	}
// }

// func (r *Router) Handle(msgName string, handler Handler) {
// 	r.rules[msgName] = handler
// }

// func (r *Router) FindHandler(msgName string) (Handler, bool) {
// 	handler, found := r.rules[msgName]
// 	return handler, found
// }

// func (e *Router) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// 	socket, err := upgrader.Upgrade(w, r, nil)
// 	if err != nil {
// 		w.WriteHeader(http.StatusInternalServerError)
// 		fmt.Fprint(w, err.Error())
// 		return
// 	}
// 	client := NewClient(socket, e.FindHandler, e.session)
// 	go client.Write()
// 	client.Read()
// }

// // func main() {
// // 	router := NewRouter()
// // 	// router.Handle('channel add', addChannel)
// // }