mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-03 22:45:13 +08:00
优化初始化方式
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
var configdir = "./config/"
|
||||
|
||||
type SubNet struct {
|
||||
SubNetName string
|
||||
NodeList []NodeInfo
|
||||
}
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ func (slf *Cluster) InitCfg(currentNodeId int) error{
|
||||
if ok == false {
|
||||
return fmt.Errorf("NodeId %d not in any subnet",currentNodeId)
|
||||
}
|
||||
|
||||
subnet.SubNetName = localSubnetName
|
||||
for _,nodeinfo := range subnet.NodeList {
|
||||
localSubNetMapNode[nodeinfo.NodeId] = nodeinfo
|
||||
|
||||
@@ -160,7 +160,7 @@ func (slf *Cluster) InitCfg(currentNodeId int) error{
|
||||
slf.localNodeInfo =localNodeInfo
|
||||
|
||||
//读取服务
|
||||
|
||||
slf.ReadLocalSubNetServiceConfig(slf.localsubnet.SubNetName)
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package GateService
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/duanhf2012/origin/event"
|
||||
"github.com/duanhf2012/origin/network"
|
||||
"github.com/duanhf2012/origin/network/processor"
|
||||
@@ -37,10 +38,10 @@ func (slf *GateService) OnEventHandler(ev *event.Event) error{
|
||||
}
|
||||
|
||||
func (slf *GateService) OnConnected(clientid uint64){
|
||||
|
||||
fmt.Printf("client id %d connected",clientid)
|
||||
}
|
||||
|
||||
|
||||
func (slf *GateService) OnDisconnected(clientid uint64){
|
||||
|
||||
fmt.Printf("client id %d disconnected",clientid)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ListenAddr":"127.0.0.1:8001",
|
||||
"NodeName": "Node_Test1",
|
||||
"remark":"//以_打头的,表示只在本机进程,不对整个子网开发",
|
||||
"ServiceList": ["TestService1","TestService2","TestServiceCall"]
|
||||
"ServiceList": ["TestService1","TestService2","TestServiceCall","GateService","TcpService"]
|
||||
},
|
||||
{
|
||||
"NodeId": 2,
|
||||
|
||||
@@ -189,12 +189,11 @@ func (slf *TestService2) OnInit() error {
|
||||
}
|
||||
|
||||
func main(){
|
||||
node.Init()
|
||||
tcpService := &sysservice.TcpService{}
|
||||
gateService := &GateService.GateService{}
|
||||
|
||||
tcpService.SetEventReciver(gateService)
|
||||
node.Setup(tcpService,gateService)
|
||||
node.Init()
|
||||
|
||||
node.Start()
|
||||
}
|
||||
|
||||
@@ -102,6 +102,7 @@ func Start() {
|
||||
|
||||
func Setup(s ...service.IService) {
|
||||
for _,sv := range s {
|
||||
sv.OnSetup(sv)
|
||||
preSetupService = append(preSetupService,sv)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ type IService interface {
|
||||
Init(iservice IService,getClientFun rpc.FuncRpcClient,getServerFun rpc.FuncRpcServer,serviceCfg interface{})
|
||||
GetName() string
|
||||
|
||||
OnSetup(iservice IService)
|
||||
OnInit() error
|
||||
OnRelease()
|
||||
Wait()
|
||||
@@ -38,8 +39,14 @@ type Service struct {
|
||||
startStatus bool
|
||||
}
|
||||
|
||||
func (slf *Service) Init(iservice IService,getClientFun rpc.FuncRpcClient,getServerFun rpc.FuncRpcServer,serviceCfg interface{}) {
|
||||
func (slf *Service) OnSetup(iservice IService){
|
||||
if iservice.GetName() == "" {
|
||||
slf.name = reflect.Indirect(reflect.ValueOf(iservice)).Type().Name()
|
||||
}
|
||||
}
|
||||
|
||||
func (slf *Service) Init(iservice IService,getClientFun rpc.FuncRpcClient,getServerFun rpc.FuncRpcServer,serviceCfg interface{}) {
|
||||
|
||||
slf.dispatcher =timer.NewDispatcher(timerDispatcherLen)
|
||||
slf.this = iservice
|
||||
slf.InitRpcHandler(iservice.(rpc.IRpcHandler),getClientFun,getServerFun)
|
||||
|
||||
Reference in New Issue
Block a user