grim/amongchat

Initial revision
draft default tip
2020-09-23, Gary Kramlich
dead8a9014bd
Initial revision
package server
import (
"fmt"
"net/http"
"time"
"github.com/gin-gonic/gin"
"keep.imfreedom.org/grim/amongchat/muxer"
)
type Server struct {
listenAddr string
muxer *muxer.Muxer
server *http.Server
}
func NewServer(listenAddr string, muxer *muxer.Muxer) *Server {
return &Server{
listenAddr: listenAddr,
muxer: muxer,
server: &http.Server{
Addr: listenAddr,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
},
}
}
func (s *Server) Listen() error {
gin.SetMode(gin.ReleaseMode)
router := gin.Default()
router.GET("/ws", s.wsHandler)
s.server.Handler = router
fmt.Printf("listening on %s\n", s.listenAddr)
return s.server.ListenAndServe()
}
func (s *Server) Close() error {
return s.server.Close()
}