| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package main
- import (
- "context"
- "dashoo.cn/micro/app/handler"
- "dashoo.cn/micro/app/service"
- "dashoo.cn/opms_libary/micro_srv"
- "dashoo.cn/opms_libary/myerrors"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/net/ghttp"
- "github.com/smallnest/rpcx/protocol"
- "strings"
- )
- func main() {
- srvAddr := g.Config().GetString("setting.bind-addr")
- basePath := g.Config().GetString("setting.srv-name")
- // 创建总服务包
- s := micro_srv.CreateAndInitService(basePath)
- // 注册服务对象
- s.RegisterName("Dict", new(handler.DictHandler), "")
- s.RegisterName("Auth", new(handler.AuthHandler), "")
- s.RegisterName("User", new(handler.UserHandler), "")
- s.RegisterName("Menu", new(handler.MenuHandler), "")
- s.RegisterName("Dept", new(handler.DeptHandler), "")
- s.RegisterName("Role", new(handler.RoleHandler), "")
- s.RegisterName("Post", new(handler.PostHandler), "")
- s.RegisterName("Group", new(handler.GroupHandler), "")
- s.RegisterName("LoginLog", new(handler.LoginLogHandler), "")
- s.RegisterName("Config", new(handler.ConfigHandler), "")
- s.RegisterName("Message", new(handler.MessageHandler), "")
- s.RegisterName("BaseProductAuth", new(handler.BaseProductAuthHandler), "")
- s.RegisterName("BaseRegionAuth", new(handler.BaseRegionAuthHandler), "")
- s.RegisterName("SystemMessage", new(handler.SystemMessageHandler), "")
- // 注册文件处理Service对象
- //dynamic.BeanFactory.BeanRegister(service.NewRoleService())
- // 注册auth处理
- s.AuthFunc = handleAuth
- // 错误拦截
- s.Plugins.Add(&myerrors.HandleErrorPlugin{})
- // 启动websocket服务
- go websocketStart()
- // 运行服务
- if err := s.Serve("tcp", srvAddr); err != nil {
- g.Log().Fatal(err)
- }
- }
- // AuthExcludePaths 设定不需要认证的路径
- var AuthExcludePaths = []string{
- "/Auth/Login",
- "/Auth/ValidToken",
- "/Role/GetRoleList",
- "/Common/GetCaptchaImg",
- "/Model/*",
- "/Organize/GetOrgTreeList",
- "/User/SendResetPasswordEmail",
- "/User/ResetPasswordFromEmail",
- "/SystemMessage/Create",
- "/Message/SendMail",
- "/Dict/GetDictDataByType",
- "/User/GetDataScope",
- }
- // 处理Auth
- func handleAuth(ctx context.Context, req *protocol.Message, token string) error {
- ctx = context.WithValue(ctx, "NotAuthSrv", true)
- // token拦截器
- err := micro_srv.HandleAuth(ctx, req, token, AuthExcludePaths)
- return err
- }
- // 启动websocket服务
- func websocketStart() {
- flag := g.Config().GetBool("setting.websocket-start", true)
- if !flag {
- return
- }
- s := g.Server()
- s.BindHandler("/ws", func(r *ghttp.Request) {
- link := r.GetString("uid")
- if link != "" {
- userId := strings.Split(link, "-")[0]
- service.CreateConnection(userId, link, r)
- }
- })
- go service.CheckRun()
- // 配置文件获取参数
- s.SetAddr(g.Config().GetString("setting.websocket-addr", "127.0.0.1:8899"))
- s.Run()
- }
|