1 Star 0 Fork 0

liuxuezhan / mylib

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
netmgr.go 2.33 KB
一键复制 编辑 原始数据 按行查看 历史
liuxuezhan 提交于 2020-11-28 16:22 . 'im ok'
package app
import (
"gitee.com/liuxuezhan/mylib/Protocol"
"gitee.com/liuxuezhan/mylib/conf/ConfigServer"
"gitee.com/liuxuezhan/mylib/listenClient/tcp"
. "gitee.com/liuxuezhan/mylib/log"
"github.com/micro/cli"
"github.com/micro/go-micro"
"github.com/micro/go-micro/broker"
"github.com/micro/go-micro/registry"
"github.com/micro/go-micro/registry/mdns"
"sync"
)
// ============================================================================
const (
C_max_gateid = 100000
)
// ============================================================================
var seq_gateid int32 = C_max_gateid
var use_router_id int32
// ============================================================================
var NetMgr = &netmgr_t{
connectq: tcp.NewConnectQ(),
}
// ============================================================================
type netmgr_t struct {
svr4gw *tcp.Server // server for gate
connectq *tcp.ConnectQ // connect queue
//cnn_gs PB.Gate2GameService // connection to gs
Broker micro.Publisher
locker_gw sync.Mutex
locker_rt sync.Mutex
}
// ============================================================================
func (self *netmgr_t) Start() {
// 新建服务,启动参数registry_address修改服务注册中心地址
service := micro.NewService(
micro.Name(ConfigServer.OldConf.IM.Name),
micro.Registry(mdns.NewRegistry(func(ops *registry.Options) {
if ConfigServer.OldConf.Common.Regsrv != "" {
ops.Addrs = []string{ConfigServer.OldConf.Common.Regsrv}
}
})),
)
////发布者
self.Broker = micro.NewPublisher(ConfigServer.OldConf.IM.BrokerTopic, service.Client())
//订阅者
msg := &broker.Message{
Header: map[string]string{
"Content-Type": "application/json",
},
Body: []byte(`{"message": "Hello World"}`),
}
broker.Subscribe(ConfigServer.OldConf.IM.BrokerTopic, func(p broker.Event) error {
m := p.Message()
if string(m.Body) != string(msg.Body) {
}
return nil
}, broker.Queue("shared"))
// 服务初始化
service.Init(
micro.Flags(
cli.StringFlag{
Name: "config",
Usage: "config.json",
EnvVar: "config file"},
cli.StringFlag{
Name: "log",
Usage: "game1.log",
EnvVar: "log file"},
),
)
// 注册服务
MPB.RegisterGame2ChatHandler(service.Server(), new(Handlers))
// 启动服务
if err := service.Run(); err != nil {
Log.Fatal(err)
}
}
1
https://gitee.com/liuxuezhan/mylib.git
git@gitee.com:liuxuezhan/mylib.git
liuxuezhan
mylib
mylib
v1.1.3

搜索帮助