Commit 945f256c by yunpeng.song

替换第三发日志库,修改配置文件为json。

parent 91aa9a4e
{
"servercfg":{
"traceid":"ser1",
"project":"clientserver"
},
"prefix":{
"msgname":"",
"clientname":"",
"clientserver":"",
"msgstatusname":"",
"routestatusname":""
}
}
\ No newline at end of file
...@@ -27,8 +27,6 @@ const OVER_ClIENT_TIME = 30 ...@@ -27,8 +27,6 @@ const OVER_ClIENT_TIME = 30
const ROUTE_MAX_RECV_LEN = 10240 const ROUTE_MAX_RECV_LEN = 10240
const ROUTE_HOST_IP_PORT = "127.0.0.1:38000" const ROUTE_HOST_IP_PORT = "127.0.0.1:38000"
//const MyNmae = "ser1"
//注册服务类型 //注册服务类型
type SSERTYPE uint32 type SSERTYPE uint32
...@@ -47,7 +45,7 @@ type SerCommand struct { ...@@ -47,7 +45,7 @@ type SerCommand struct {
Data [1024]byte Data [1024]byte
} }
var Ctrl_Config_ = NewCtrlConfig_ var Ctrl_Config_ = newCfg()
type Config_ struct { type Config_ struct {
Mq map[string]string `json:"mq list"` Mq map[string]string `json:"mq list"`
...@@ -66,15 +64,20 @@ type Server struct { ...@@ -66,15 +64,20 @@ type Server struct {
} }
type SERVER_CONFIG struct { type SERVER_CONFIG struct {
Traceid string //"路由的唯一,追踪的标示" Traceid string `json:"traceid"` //"路由的唯一,追踪的标示"
Project string //"项目的唯一标示" Project string `json:"project"` //"项目的唯一标示"
} }
//redis key name //redis key name
type REDISNAME_CONFIG struct { type REDISNAME_CONFIG struct {
MsgName_prefix string //"消息的前缀" MsgName_prefix string `json:"msgname"` //"消息的前缀"
ClientName_prefix string //"客户端的前缀" ClientName_prefix string `json:"clientname"` //"客户端的前缀"
ClientServer_prefix string //"" ClientServer_prefix string `json:"clientserver"` //""
MsgStatusListName string //"未执行消息的list,只带消息id的" MsgStatusListName string `json:"msgstatusname"` //"未执行消息的list,只带消息id的"
RotuteStatuslistName string //"在线路由的列表" RotuteStatuslistName string `json:"routestatusname"` //"在线路由的列表"
}
type CFG struct {
Prefix REDISNAME_CONFIG `json:"prefix"`
ServerCfg SERVER_CONFIG `json:"servercfg"`
} }
package config package config
import ( import (
"fmp_kit_eyeatom/eyeatom" "encoding/json"
"fmt" "io/ioutil"
"os" "os"
"os/exec" "os/exec"
"strings" "strings"
"github.com/Unknwon/goconfig" log "github.com/sirupsen/logrus"
) )
const CONFIG_CONFIGNAME = "Server.ini" const CONFIG_CONFIGNAME = "cfg.json"
var SerConfig SERVER_CONFIG var SerConfig SERVER_CONFIG
var OctopusRedisConfig REDISNAME_CONFIG //各种数据在redis 中的名称 var OctopusRedisConfig REDISNAME_CONFIG //各种数据在redis 中的名称
var ConfigFilePath string var ConfigFilePath string
//日志库,redis 配置 func newCfg() *CFG {
var Eyelog *eyeatom.EyeAtom cfg := &CFG{}
return cfg
type CtrlConfig struct {
}
func NewCtrlConfig() *CtrlConfig {
p := &CtrlConfig{}
ConfigFilePath = fmt.Sprintf("%s%s", p.getCurrentPath(), CONFIG_CONFIGNAME)
p.creteConfigFile()
//初始 CONFIG 化结构体
{
SerConfig.Traceid = ""
SerConfig.Project = ""
}
p.LoadLocalOctopusConfig()
OctopusRedisConfig.MsgName_prefix = fmt.Sprintf("%s.Msg", SerConfig.Project)
OctopusRedisConfig.ClientName_prefix = fmt.Sprintf("%s.Client", SerConfig.Project)
OctopusRedisConfig.ClientServer_prefix = fmt.Sprintf("%s.ClientServer", SerConfig.Project)
OctopusRedisConfig.MsgStatusListName = fmt.Sprintf("%s.%s.%s", SerConfig.Project, SerConfig.Traceid, "MsgStatsus")
OctopusRedisConfig.RotuteStatuslistName = fmt.Sprintf("%s.%s", SerConfig.Project, "RouteStatus")
fmt.Println(OctopusRedisConfig.MsgName_prefix)
fmt.Println(OctopusRedisConfig.ClientName_prefix)
fmt.Println(OctopusRedisConfig.ClientServer_prefix)
fmt.Println(OctopusRedisConfig.MsgStatusListName)
fmt.Println(OctopusRedisConfig.RotuteStatuslistName)
//初始化 eyelog
{
var callrpc = eyeatom.CALLRPC{Project: SerConfig.Project, Traceid: SerConfig.Traceid, LogName: "serlog"}
var redisconfig = eyeatom.RedisConfig{Addr: "127.0.0.1:6379", Password: "", Db: 0}
Eyelog = eyeatom.NewCtrlCallChain(callrpc, redisconfig)
}
return p
} }
func (p *CtrlConfig) LoadLocalOctopusConfig() SERVER_CONFIG { func GetSrverId() string {
return SerConfig.Traceid
cfg, err := goconfig.LoadConfigFile(ConfigFilePath)
if err != nil {
panic("错误")
}
SerConfig.Traceid, err = cfg.GetValue("Server", "traceid")
SerConfig.Project, err = cfg.GetValue("Server", "project")
if err != nil {
SerConfig.Traceid = ""
}
cfg.Reload()
return SerConfig
} }
func GetSrverName() string {
func (p *CtrlConfig) GetSerConfig() SERVER_CONFIG { return SerConfig.Project
return SerConfig
} }
//serConfig func initOhterCfg() {
func (p *CtrlConfig) GetLocalSerConfig() SERVER_CONFIG {
cfg, err := goconfig.LoadConfigFile(ConfigFilePath) SerConfig = Ctrl_Config_.ServerCfg
if err != nil {
panic("错误") OctopusRedisConfig.MsgName_prefix = SerConfig.Project + ".Msg"
} OctopusRedisConfig.ClientName_prefix = SerConfig.Project + ".Client"
OctopusRedisConfig.ClientServer_prefix = SerConfig.Project + "ClientServer"
SerConfig.Traceid, err = cfg.GetValue("Server", "traceid") OctopusRedisConfig.MsgStatusListName = SerConfig.Project + SerConfig.Traceid + "MsgStatsus"
SerConfig.Project, err = cfg.GetValue("Server", "project") OctopusRedisConfig.RotuteStatuslistName = SerConfig.Project + "RouteStatus"
if err != nil { log.WithFields(log.Fields{
SerConfig.Traceid = "ser1" "Traceid": Ctrl_Config_.ServerCfg.Traceid,
} "Project": Ctrl_Config_.ServerCfg.Project,
cfg.Reload() "MsgName_prefix": OctopusRedisConfig.MsgName_prefix,
return SerConfig "ClientName_prefix": OctopusRedisConfig.ClientName_prefix,
"ClientServer_prefix": OctopusRedisConfig.ClientServer_prefix,
"MsgStatusListName": OctopusRedisConfig.MsgStatusListName,
"RotuteStatuslistName": OctopusRedisConfig.RotuteStatuslistName,
}).Info()
} }
func (p *CtrlConfig) getCurrentPath() string { func getCurrentPath() string {
s, err := exec.LookPath(os.Args[0]) s, err := exec.LookPath(os.Args[0])
if err != nil { if err != nil {
...@@ -100,18 +58,26 @@ func (p *CtrlConfig) getCurrentPath() string { ...@@ -100,18 +58,26 @@ func (p *CtrlConfig) getCurrentPath() string {
path := string(s[0 : i+1]) path := string(s[0 : i+1])
return path return path
} }
func (p *CtrlConfig) creteConfigFile() {
if p.isFileExist(ConfigFilePath) == false { func LoadCfg() (err error) {
file2, error := os.OpenFile(ConfigFilePath, os.O_RDWR|os.O_CREATE, 0766) ConfigFilePath = getCurrentPath() + CONFIG_CONFIGNAME
if error != nil { log.WithFields(log.Fields{
fmt.Println(error) "cfgpath": ConfigFilePath,
} }).Info()
file2.Close() var fp *os.File
if fp, err = os.Open(ConfigFilePath); err != nil {
return err
} }
} var data []byte
func (p *CtrlConfig) isFileExist(filename string) bool { if data, err = ioutil.ReadAll(fp); err != nil {
if _, err := os.Stat(filename); os.IsNotExist(err) { return err
return false }
if err = fp.Close(); err != nil {
return err
}
if err = json.Unmarshal(data, Ctrl_Config_); err != nil {
return err
} }
return true initOhterCfg()
return nil
} }
...@@ -26,10 +26,10 @@ func InitLog() { ...@@ -26,10 +26,10 @@ func InitLog() {
log.SetLevel(log.InfoLevel) log.SetLevel(log.InfoLevel)
logWriter, err := rotatelogs.New( logWriter, err := rotatelogs.New(
logName+".%Y-%m-%d-%H-%M.log", logName+".%Y-%m-%d-%H-%M.log",
rotatelogs.WithLinkName(logName), // 生成软链,指向最新日志文件 rotatelogs.WithLinkName(logName), // 生成软链,指向最新日志文件
rotatelogs.WithMaxAge(30*24*time.Hour), // 文件最大保存时间 rotatelogs.WithMaxAge(30*24*time.Hour), // 文件最大保存时间
//rotatelogs.WithRotationTime(24*time.Hour), // 日志切割时间间隔 rotatelogs.WithRotationTime(24*time.Hour), // 日志切割时间间隔
rotatelogs.WithRotationTime(1*time.Minute), //rotatelogs.WithRotationTime(1*time.Minute),
) )
writeMap := lfshook.WriterMap{ writeMap := lfshook.WriterMap{
log.InfoLevel: logWriter, log.InfoLevel: logWriter,
......
...@@ -9,9 +9,8 @@ import ( ...@@ -9,9 +9,8 @@ import (
//"ficus_clientserver/route" //"ficus_clientserver/route"
"ficus_clientserver/thrifthandler" "ficus_clientserver/thrifthandler"
"log"
"os" log "github.com/sirupsen/logrus"
"github.com/apache/thrift/lib/go/thrift" "github.com/apache/thrift/lib/go/thrift"
) )
...@@ -28,9 +27,7 @@ var quitFlag chan int ...@@ -28,9 +27,7 @@ var quitFlag chan int
func main() { func main() {
//读取配置文件 //读取配置文件
InitLog() InitLog()
ctrlConfig := config.NewCtrlConfig() InitCfg()
localConfig := ctrlConfig.GetLocalSerConfig()
log.Println("Config Traceid:", localConfig.Traceid, " Project", localConfig.Project)
quitFlag = make(chan int) quitFlag = make(chan int)
go StartWork() go StartWork()
go Startwork0() go Startwork0()
...@@ -52,8 +49,7 @@ func StartWork() { ...@@ -52,8 +49,7 @@ func StartWork() {
func Startwork0() { func Startwork0() {
serverTransport, err := thrift.NewTServerSocket(NetworkAddr0) serverTransport, err := thrift.NewTServerSocket(NetworkAddr0)
if err != nil { if err != nil {
log.Println("Error!", err) log.Fatalln("Error!", err)
os.Exit(1)
} }
//redis 控制 //redis 控制
processorFactory := thrifthandler.NewMyTProcessorFactory(model.GetDefaultClientMap(), redis.NewCtrl_RedisClient_()) processorFactory := thrifthandler.NewMyTProcessorFactory(model.GetDefaultClientMap(), redis.NewCtrl_RedisClient_())
...@@ -71,8 +67,7 @@ func Startwork0() { ...@@ -71,8 +67,7 @@ func Startwork0() {
func Startwork1() { func Startwork1() {
serverTransport, err := thrift.NewTServerSocket(NetworkAddr1) serverTransport, err := thrift.NewTServerSocket(NetworkAddr1)
if err != nil { if err != nil {
log.Println("Error!", err) log.Fatalln(err)
os.Exit(1)
} }
pkgHandle := &thrifthandler.PkgHandle{} pkgHandle := &thrifthandler.PkgHandle{}
...@@ -90,7 +85,7 @@ func Startwork1() { ...@@ -90,7 +85,7 @@ func Startwork1() {
log.Println("thrift server in", NetworkAddr1) log.Println("thrift server in", NetworkAddr1)
if err := server.Serve(); err != nil { if err := server.Serve(); err != nil {
panic(err) log.Panicln(err)
} }
} }
...@@ -99,3 +94,10 @@ func StartPackServer() { ...@@ -99,3 +94,10 @@ func StartPackServer() {
r := route.InitRouter() r := route.InitRouter()
r.Run(":36790") r.Run(":36790")
} }
func InitCfg() {
if err := config.LoadCfg(); err != nil {
log.Fatalln(err)
}
}
...@@ -3,9 +3,10 @@ package model ...@@ -3,9 +3,10 @@ package model
import ( import (
"ficus/mission" "ficus/mission"
"ficus_clientserver/config" "ficus_clientserver/config"
"fmt"
"sync" "sync"
"time" "time"
log "github.com/sirupsen/logrus"
) )
//维护一个任务列表的状态 //维护一个任务列表的状态
...@@ -90,7 +91,7 @@ func (p *CtrlmapClientMsg_) ClientMsg_Work(t T_CMsg) { ...@@ -90,7 +91,7 @@ func (p *CtrlmapClientMsg_) ClientMsg_Work(t T_CMsg) {
//查询是否在线 //查询是否在线
if cc.Trans.IsOpen() { if cc.Trans.IsOpen() {
//发送消息 //发送消息
fmt.Println("准备发送消息!") log.Println("准备发送消息!")
dis := &MyPushMsg{} dis := &MyPushMsg{}
dis.PushDispatch(cc, t.Mis, p.Ctrl_MapClient) dis.PushDispatch(cc, t.Mis, p.Ctrl_MapClient)
...@@ -100,11 +101,11 @@ func (p *CtrlmapClientMsg_) ClientMsg_Work(t T_CMsg) { ...@@ -100,11 +101,11 @@ func (p *CtrlmapClientMsg_) ClientMsg_Work(t T_CMsg) {
//设置map列表不在线 //设置map列表不在线
p.Ctrl_MapClient.SetLine(cc.Agent.ID, false) p.Ctrl_MapClient.SetLine(cc.Agent.ID, false)
//设置redis列表显示不在线 //设置redis列表显示不在线
fmt.Println("设置map列表不在线!") log.Println("设置map列表不在线!")
} }
} else { } else {
//不在线 //不在线
fmt.Println("不在线") log.Println("不在线")
} }
return return
......
...@@ -4,10 +4,9 @@ import ( ...@@ -4,10 +4,9 @@ import (
"context" "context"
"ficus/mission" "ficus/mission"
"ficus/service" "ficus/service"
"ficus_clientserver/config"
"fmt"
"github.com/apache/thrift/lib/go/thrift" "github.com/apache/thrift/lib/go/thrift"
log "github.com/sirupsen/logrus"
) )
//interface //interface
...@@ -30,10 +29,6 @@ func (p *MyPushMsg) PushDispatch(client T_FmClient, mis mission.Message, Ctrl_ma ...@@ -30,10 +29,6 @@ func (p *MyPushMsg) PushDispatch(client T_FmClient, mis mission.Message, Ctrl_ma
func (p *MyPushMsg) PushClientDispatch(trans thrift.TTransport, mis mission.Message) bool { func (p *MyPushMsg) PushClientDispatch(trans thrift.TTransport, mis mission.Message) bool {
callbackClient := service.NewDispatchServiceClientFactory(thrift.NewTFramedTransport(trans), thrift.NewTCompactProtocolFactory()) callbackClient := service.NewDispatchServiceClientFactory(thrift.NewTFramedTransport(trans), thrift.NewTCompactProtocolFactory())
{
config.Eyelog.WriteCallAndLog(string(mis.ID), "", "发送消息到客户端 ... - 消息ID:", string(mis.ID), "客户端id:", mis.Agent)
}
// Type_DAEMON Type = 4587776 // Type_DAEMON Type = 4587776
// Type_FRAMEWORK Type = 4588032 // Type_FRAMEWORK Type = 4588032
// Type_SYSTEMINFO Type = 4588288 // Type_SYSTEMINFO Type = 4588288
...@@ -50,7 +45,7 @@ func (p *MyPushMsg) PushClientDispatch(trans thrift.TTransport, mis mission.Mess ...@@ -50,7 +45,7 @@ func (p *MyPushMsg) PushClientDispatch(trans thrift.TTransport, mis mission.Mess
err := callbackClient.Dispatch(context.Background(), &mis) err := callbackClient.Dispatch(context.Background(), &mis)
if err != nil { if err != nil {
fmt.Println("err:", err) log.Println("err:", err)
} }
return true return true
} }
...@@ -29,7 +29,6 @@ func NewCtrl_RedisClient_() *CtrlRedisClient_ { ...@@ -29,7 +29,6 @@ func NewCtrl_RedisClient_() *CtrlRedisClient_ {
}) })
go p.Read_Chan_Client() go p.Read_Chan_Client()
//defer c.Close()
return p return p
} }
func (p *CtrlRedisClient_) UpdateMsgStatus(mis mission.Message) bool { func (p *CtrlRedisClient_) UpdateMsgStatus(mis mission.Message) bool {
...@@ -54,7 +53,7 @@ func (p *CtrlRedisClient_) set(c model.T_FmClient) bool { ...@@ -54,7 +53,7 @@ func (p *CtrlRedisClient_) set(c model.T_FmClient) bool {
func (p *CtrlRedisClient_) setClient(c model.T_FmClient) bool { func (p *CtrlRedisClient_) setClient(c model.T_FmClient) bool {
jsonStr, _ := json.Marshal(c) jsonStr, _ := json.Marshal(c)
kname := fmt.Sprintf("%s.%s", config.OctopusRedisConfig.ClientName_prefix, c.Agent.ID) kname := fmt.Sprintf("%s.%s", config.OctopusRedisConfig.ClientName_prefix, c.Agent.ID)
fmt.Println(kname) fmt.Println("clientkey", kname)
err := p.ctrlRedis.Set(kname, string(jsonStr), 0).Err() err := p.ctrlRedis.Set(kname, string(jsonStr), 0).Err()
if err != nil { if err != nil {
fmt.Println("redis set failed:", err) fmt.Println("redis set failed:", err)
...@@ -128,9 +127,7 @@ func (p *CtrlRedisClient_) get(k string) model.T_FmClient { ...@@ -128,9 +127,7 @@ func (p *CtrlRedisClient_) get(k string) model.T_FmClient {
func (p *CtrlRedisClient_) Write_RouteRedis(key string) { func (p *CtrlRedisClient_) Write_RouteRedis(key string) {
go func() { go func() {
k := fmt.Sprintf("%s.%v", config.OctopusRedisConfig.ClientServer_prefix, key) k := fmt.Sprintf("%s.%v", config.OctopusRedisConfig.ClientServer_prefix, key)
fmt.Println("ClientServer :", k)
v := config.SerConfig.Traceid v := config.SerConfig.Traceid
fmt.Println("ClientServer value:", v)
p.setKV(k, v) p.setKV(k, v)
}() }()
} }
......
...@@ -2,11 +2,8 @@ package route ...@@ -2,11 +2,8 @@ package route
import ( import (
"bytes" "bytes"
"fmt"
"io"
"io/ioutil" "io/ioutil"
"net/http" "net/http"
"os"
"time" "time"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
...@@ -14,7 +11,7 @@ import ( ...@@ -14,7 +11,7 @@ import (
) )
func WrongRequest(c *gin.Context, err error) { func WrongRequest(c *gin.Context, err error) {
fmt.Fprintln(gin.DefaultWriter, "错误", err) log.Println("错误", err)
c.JSON(http.StatusOK, gin.H{ c.JSON(http.StatusOK, gin.H{
"statusCOde": "101", "statusCOde": "101",
"msg": err.Error(), "msg": err.Error(),
...@@ -33,9 +30,9 @@ func InitGin() { ...@@ -33,9 +30,9 @@ func InitGin() {
} }
func InitLog() { func InitLog() {
gin.DisableConsoleColor() // gin.DisableConsoleColor()
f, _ := os.Create("gin.log") // f, _ := os.Create("gin.log")
gin.DefaultWriter = io.MultiWriter(f) // gin.DefaultWriter = io.MultiWriter(f)
//gin.DefaultWriter = io.MultiWriter(f, os.Stdout) //gin.DefaultWriter = io.MultiWriter(f, os.Stdout)
} }
...@@ -51,9 +48,7 @@ func LogMiddle(c *gin.Context) { ...@@ -51,9 +48,7 @@ func LogMiddle(c *gin.Context) {
end := time.Now() end := time.Now()
//执行时间 //执行时间
latency := end.Sub(start) latency := end.Sub(start)
path := c.Request.URL.Path path := c.Request.URL.Path
clientIP := c.ClientIP() clientIP := c.ClientIP()
method := c.Request.Method method := c.Request.Method
statusCode := c.Writer.Status() statusCode := c.Writer.Status()
......
...@@ -4,7 +4,6 @@ import ( ...@@ -4,7 +4,6 @@ import (
"ficus_clientserver/config" "ficus_clientserver/config"
"ficus_clientserver/model" "ficus_clientserver/model"
"ficus_clientserver/redis" "ficus_clientserver/redis"
"fmt"
"net" "net"
"sync" "sync"
"time" "time"
...@@ -59,7 +58,7 @@ func (p *Ctrl_RotuteRecv) ConnRotuteAndRead() { ...@@ -59,7 +58,7 @@ func (p *Ctrl_RotuteRecv) ConnRotuteAndRead() {
//发送一个登录消息 //发送一个登录消息
{ {
sname := "ser1" sname := config.GetSrverId()
var login config.SerCommand var login config.SerCommand
login.Command = config.COMMAND_LOGIN login.Command = config.COMMAND_LOGIN
login.SerType = config.SERTYPE_CONSUME login.SerType = config.SERTYPE_CONSUME
...@@ -85,16 +84,16 @@ func (p *Ctrl_RotuteRecv) ConnRotuteAndRead() { ...@@ -85,16 +84,16 @@ func (p *Ctrl_RotuteRecv) ConnRotuteAndRead() {
for { for {
_, err2 := conn.Read(buffer) _, err2 := conn.Read(buffer)
if err2 != nil { if err2 != nil {
fmt.Println("conn error return") log.Println("conn error return")
return return
} }
//接受数据成功 //接受数据成功
pServer := *(**config.SerCommand)(unsafe.Pointer(&buffer)) pServer := *(**config.SerCommand)(unsafe.Pointer(&buffer))
fmt.Println("Recv Command:", pServer.Command) log.Println("Recv Command:", pServer.Command)
if pServer.Command == config.COMMAND_LOGIN { if pServer.Command == config.COMMAND_LOGIN {
// 登录成功,添加路由到Map // 登录成功,添加路由到Map
fmt.Println("登录路由成功,路由名称", string(pServer.Data[:pServer.Length]), "角色:消费者") log.Println("登录路由成功,路由名称", string(pServer.Data[:pServer.Length]), "角色:消费者")
//rs.Name=string(pServer.Data[:]); //rs.Name=string(pServer.Data[:]);
//rs.Conn = conn; //rs.Conn = conn;
p.Rotute.Conn = conn p.Rotute.Conn = conn
...@@ -109,30 +108,27 @@ func (p *Ctrl_RotuteRecv) ConnRotuteAndRead() { ...@@ -109,30 +108,27 @@ func (p *Ctrl_RotuteRecv) ConnRotuteAndRead() {
err:=json.Unmarshal(pServer.Data[:pServer.Length],&msg) err:=json.Unmarshal(pServer.Data[:pServer.Length],&msg)
msg.RouteName=p.Rotute.Name msg.RouteName=p.Rotute.Name
if err == nil { if err == nil {
fmt.Println("Recv Msg Id:",msg.Mis.ID) log.Println("Recv Msg Id:",msg.Mis.ID)
//转成相关的数据格式 //转成相关的数据格式
//Ctrl_mapCMsg.Set(msg.Mis.ID,msg) //Ctrl_mapCMsg.Set(msg.Mis.ID,msg)
p.ctrl_mapClientMsg.Write_Chan_ClientMsg(msg) p.ctrl_mapClientMsg.Write_Chan_ClientMsg(msg)
}else{ }else{
fmt.Println("json.Unmarshal:",err) log.Println("json.Unmarshal:",err)
} }
*/ */
id := pServer.Data[:pServer.Length] id := pServer.Data[:pServer.Length]
//id //id
fmt.Println("recv one msg-------------id:", string(id), "---------------------------------------") log.Println("recv one msg-------------id:", string(id), "---------------------------------------")
{
config.Eyelog.WriteCallAndLog(string(id), "", "接收到路由消息 ... - 消息ID:", string(id))
}
msg := p.ctrl_redisMsg.GetMsg(string(id)) msg := p.ctrl_redisMsg.GetMsg(string(id))
if msg.Mis.ID == string(id) { if msg.Mis.ID == string(id) {
p.ctrl_mapClientMsg.Write_Chan_ClientMsg(msg) p.ctrl_mapClientMsg.Write_Chan_ClientMsg(msg)
} else { } else {
fmt.Println("存在这个消息吗") log.Println("存在这个消息吗")
} }
} else { } else {
fmt.Println("未登录成功,不接受消息推送 …… ") log.Println("未登录成功,不接受消息推送 …… ")
} }
} }
} }
......
...@@ -4,11 +4,12 @@ import ( ...@@ -4,11 +4,12 @@ import (
json2 "encoding/json" json2 "encoding/json"
"ficus/mission" "ficus/mission"
"ficus_clientserver/config" "ficus_clientserver/config"
"fmt"
"net" "net"
"sync" "sync"
"time" "time"
"unsafe" "unsafe"
log "github.com/sirupsen/logrus"
) )
//接受推送服务 //接受推送服务
...@@ -81,8 +82,8 @@ func (p *Ctrl_RouteSend) StartCommRetute() { ...@@ -81,8 +82,8 @@ func (p *Ctrl_RouteSend) StartCommRetute() {
func (p *Ctrl_RouteSend) ConnRotuteAndRead() { func (p *Ctrl_RouteSend) ConnRotuteAndRead() {
conn, err := net.Dial("tcp", config.ROUTE_HOST_IP_PORT) conn, err := net.Dial("tcp", config.ROUTE_HOST_IP_PORT)
if err != nil { if err != nil {
fmt.Println("dial failed:", err) log.Println("dial failed:", err)
fmt.Println("wait reconnection …… …… ……") log.Println("wait reconnection …… …… ……")
//os.Exit(1) //os.Exit(1)
return return
} }
...@@ -91,7 +92,7 @@ func (p *Ctrl_RouteSend) ConnRotuteAndRead() { ...@@ -91,7 +92,7 @@ func (p *Ctrl_RouteSend) ConnRotuteAndRead() {
//发送一个登录消息 //发送一个登录消息
//sbuffer:=make([]byte, 1024) //sbuffer:=make([]byte, 1024)
{ {
sname := "ser1" sname := config.GetSrverId()
var login config.SerCommand var login config.SerCommand
login.Command = config.COMMAND_LOGIN login.Command = config.COMMAND_LOGIN
login.SerType = config.SERTYPE_FEEDBACK // 反馈者 login.SerType = config.SERTYPE_FEEDBACK // 反馈者
...@@ -117,16 +118,16 @@ func (p *Ctrl_RouteSend) ConnRotuteAndRead() { ...@@ -117,16 +118,16 @@ func (p *Ctrl_RouteSend) ConnRotuteAndRead() {
buffer := make([]byte, config.ROUTE_MAX_RECV_LEN) buffer := make([]byte, config.ROUTE_MAX_RECV_LEN)
_, err2 := conn.Read(buffer) _, err2 := conn.Read(buffer)
if err2 != nil { if err2 != nil {
fmt.Println("conn error return") log.Println("conn error return")
return return
} }
//接受数据成功 //接受数据成功
pServer := *(**config.SerCommand)(unsafe.Pointer(&buffer)) pServer := *(**config.SerCommand)(unsafe.Pointer(&buffer))
fmt.Println("Recv Command:", pServer.Command) log.Println("Recv Command:", pServer.Command)
if pServer.Command == config.COMMAND_LOGIN { if pServer.Command == config.COMMAND_LOGIN {
// 登录成功,添加路由到Map // 登录成功,添加路由到Map
fmt.Println("登录路由成功,路由名称", string(pServer.Data[:pServer.Length]), "角色:反馈者") log.Println("登录路由成功,路由名称", string(pServer.Data[:pServer.Length]), "角色:反馈者")
p.Rotute.Name = string(pServer.Data[:]) p.Rotute.Name = string(pServer.Data[:])
p.Rotute.Conn = conn p.Rotute.Conn = conn
//p.Rotute=rs //p.Rotute=rs
......
...@@ -3,6 +3,7 @@ package serrpcid ...@@ -3,6 +3,7 @@ package serrpcid
import ( import (
"ficus_clientserver/config" "ficus_clientserver/config"
"fmt" "fmt"
"log"
) )
/******************************* /*******************************
...@@ -31,7 +32,7 @@ func NewCtrlCallChain() *CallChain { ...@@ -31,7 +32,7 @@ func NewCtrlCallChain() *CallChain {
func (p *CallChain) Work() { func (p *CallChain) Work() {
for { for {
mycall := <-p.chanCallLog mycall := <-p.chanCallLog
fmt.Println(mycall.Project) log.Println(mycall.Project)
} }
} }
......
...@@ -6,15 +6,16 @@ import ( ...@@ -6,15 +6,16 @@ import (
"ficus_clientserver/model" "ficus_clientserver/model"
"fmt" "fmt"
"html/template" "html/template"
"log"
"net/http" "net/http"
"time" "time"
log "github.com/sirupsen/logrus"
) )
//运行状态接口 //运行状态接口
func StartRunningSysState(host string) { func StartRunningSysState(host string) {
fmt.Println("start http:", host) log.Println("start http:", host)
http.HandleFunc("/GetClientCount", GetClientCount) http.HandleFunc("/GetClientCount", GetClientCount)
http.HandleFunc("/DispatchClient", DispatchClient) http.HandleFunc("/DispatchClient", DispatchClient)
http.HandleFunc("/MsgCount", GetClientMsgCount) http.HandleFunc("/MsgCount", GetClientMsgCount)
...@@ -84,7 +85,7 @@ type Person struct { ...@@ -84,7 +85,7 @@ type Person struct {
func initTemplate(fileName string) (err error) { func initTemplate(fileName string) (err error) {
myTemplate, err = template.ParseFiles(fileName) myTemplate, err = template.ParseFiles(fileName)
if err != nil { if err != nil {
fmt.Println("parse file err:", err) log.Println("parse file err:", err)
return return
} }
return return
......
package thrifthandler
type (
DeviceHandle struct {
}
)
// func DeviceServer() {
// serverTransport, err := thrift.NewTServerSocket(net.JoinHostPort("127.0.0.1", "9091"))
// if err != nil {
// log.Println("Error!", err)
// os.Exit(1)
// }
// handle := &PkgHandle{}
// processor := service.NewPackageServiceProcessor(handle)
// protocolFactory := thrift.NewTCompactProtocolFactory()
// transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory())
// server := thrift.NewTSimpleServer4(processor, serverTransport, transportFactory, protocolFactory)
// log.Println("thrift server in", "9091")
// if err := server.Serve(); err != nil {
// panic(err)
// }
// }
// func (d *DeviceHandle) identify(ctx context.Context, string uuid) (d *Device, err error) {
// }
// func (d *DeviceHandle) bind(ctx context.Context, string uuid, Device device) (bool, err error) {
// }
...@@ -7,7 +7,6 @@ import ( ...@@ -7,7 +7,6 @@ import (
"ficus/service" "ficus/service"
"ficus_clientserver/model" "ficus_clientserver/model"
"ficus_clientserver/redis" "ficus_clientserver/redis"
"fmt"
"time" "time"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
...@@ -27,8 +26,7 @@ func NewMyDispatchService(trans thrift.TTransport, ctrl_mapClient *model.Ctrlmap ...@@ -27,8 +26,7 @@ func NewMyDispatchService(trans thrift.TTransport, ctrl_mapClient *model.Ctrlmap
} }
func (p *MyDispatchService) Heartbeat(ctx context.Context, whom *native.Agent) (r bool, err error) { func (p *MyDispatchService) Heartbeat(ctx context.Context, whom *native.Agent) (r bool, err error) {
log.Println("心跳id:", whom.ID) log.WithFields(log.Fields{"func": "Heartbeat", "心跳id": whom.ID}).Info(whom)
//心跳上来,更新在线时间,同时检测一下 客户端的在线状态 //心跳上来,更新在线时间,同时检测一下 客户端的在线状态
p.ctrl_mapClient.UpdateOnlyHartTime(whom.ID) p.ctrl_mapClient.UpdateOnlyHartTime(whom.ID)
//RouteRedis 写入客户端路由标示 --- 防止过期 //RouteRedis 写入客户端路由标示 --- 防止过期
...@@ -43,14 +41,13 @@ func (p *MyDispatchService) Feedback(ctx context.Context, response *mission.Mess ...@@ -43,14 +41,13 @@ func (p *MyDispatchService) Feedback(ctx context.Context, response *mission.Mess
} }
func (p *MyDispatchService) Login(ctx context.Context, sself *native.Agent) (r bool, err error) { func (p *MyDispatchService) Login(ctx context.Context, sself *native.Agent) (r bool, err error) {
log.Println("login :", sself.ID) log.WithFields(log.Fields{"func": "Login", "登录id": sself.ID}).Info(sself)
go func() { go func() {
//判断是否存在 //判断是否存在
key := sself.ID key := sself.ID
if p.ctrl_mapClient.IsKey(key) { if p.ctrl_mapClient.IsKey(key) {
p.ctrl_mapClient.UpdateHartTime(key, p.trans) p.ctrl_mapClient.UpdateHartTime(key, p.trans)
} else { } else {
fmt.Println("上线---client:", key)
var gfclient model.T_FmClient var gfclient model.T_FmClient
gfclient.ClientUuid = sself.ID gfclient.ClientUuid = sself.ID
gfclient.Agent = *sself gfclient.Agent = *sself
...@@ -70,7 +67,6 @@ func (p *MyDispatchService) Login(ctx context.Context, sself *native.Agent) (r b ...@@ -70,7 +67,6 @@ func (p *MyDispatchService) Login(ctx context.Context, sself *native.Agent) (r b
} }
func (p *MyDispatchService) Dispatch(ctx context.Context, request *mission.Message) (err error) { func (p *MyDispatchService) Dispatch(ctx context.Context, request *mission.Message) (err error) {
log.Println("Dispatch:")
return nil return nil
} }
......
...@@ -4,9 +4,9 @@ import ( ...@@ -4,9 +4,9 @@ import (
"context" "context"
"ficus/pkg" "ficus/pkg"
"ficus/service" "ficus/service"
"ficus_clientserver/model"
"net" "net"
"os" "os"
"ficus_clientserver/model"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
...@@ -56,6 +56,6 @@ func PkgServer() { ...@@ -56,6 +56,6 @@ func PkgServer() {
} }
} }
func (p *PkgHandle) GetSpec(ctx context.Context, pkgName string, ver string) (r *pkg.PackageSpec, err error) { func (p *PkgHandle) GetSpec(ctx context.Context, pkgName string, ver string) (r *pkg.PackageSpec, err error) {
log.WithFields(log.Fields{"pkgName": pkgName, "ver": ver}).Info("GetSpec") log.WithFields(log.Fields{"func": "GetSpec", "pkgName": pkgName, "ver": ver}).Info()
return model.DefaultPkgManger.GetCurrentPkg(pkgName,ver) return model.DefaultPkgManger.GetCurrentPkg(pkgName, ver)
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment