Files
go-gin-api/internal/websocket/socket_server/server.go
T
新亮 17be120c06 feature(1.2.8): 新增 websocket 模块
- import gorilla/websocket
- 新增 实用工具箱->WebSocket 栏目
2021-09-20 19:18:15 +08:00

60 lines
1014 B
Go

package socket_server
import (
"github.com/xinliangnote/go-gin-api/internal/pkg/cache"
"github.com/xinliangnote/go-gin-api/internal/pkg/db"
"github.com/xinliangnote/go-gin-api/pkg/errors"
"github.com/gorilla/websocket"
"go.uber.org/zap"
)
var _ Server = (*server)(nil)
type server struct {
logger *zap.Logger
db db.Repo
cache cache.Repo
socket *websocket.Conn
}
type Server interface {
i()
// OnMessage 接收消息
OnMessage()
// OnSend 发送消息
OnSend(message []byte) error
// OnClose 关闭
OnClose()
}
func New(logger *zap.Logger, db db.Repo, cache cache.Repo, conn *websocket.Conn) (Server, error) {
if logger == nil {
return nil, errors.New("logger required")
}
if db == nil {
return nil, errors.New("db required")
}
if cache == nil {
return nil, errors.New("cache required")
}
if conn == nil {
return nil, errors.New("conn required")
}
return &server{
logger: logger,
db: db,
cache: cache,
socket: conn,
}, nil
}
func (s *server) i() {}