3 Star 1 Fork 0

NightTC/Gobige

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
INetServer.go 1.91 KB
一键复制 编辑 原始数据 按行查看 历史
buguang 提交于 2023-05-23 13:03 . 加入日志,优化初始化配置
package sess
import (
"net"
"gitee.com/night-tc/gobige/logger"
"github.com/xtaci/kcp-go"
"golang.org/x/net/netutil"
)
/*
连接服务管理器
*/
type INetServer interface {
//主要给INetSess调用的方法,也可以重载
ISessCallBack
/* 外部函数 */
// //开始服务
// Start() (err error)
// //结束服务
// Stop()
// 遍历所有被动连接,返回false就退出遍历
RangeSess(f func(sess INetSess) bool)
// 获取会话
GetClientSess(id uint64) (result *NetSess)
//是否加密
GetEncryEnabled() bool
//连接类型
GetProtocal() ProtocalEnum
}
////////////////////////////////////////////////////////////////////
/* 外部函数 */
// 开始服务
func (this *NetSrv) Start() (err error) {
switch this.protocal {
case Protocal_Tcp:
this.listener, err = net.Listen("tcp", this.listenAddr)
case Protocal_Kcp:
this.listener, err = kcp.Listen(this.listenAddr)
default:
return Err_Unknown_ProtocalEnum.NewErr(nil, this.protocal)
}
if err != nil {
return err
}
if this.maxConns > 0 {
this.listener = netutil.LimitListener(this.listener, this.maxConns)
}
logger.Infof("Net server listen addr:%s;", this.listenAddr)
this.thgo.Go(this.acceptConn)
return nil
}
// 结束服务
func (this *NetSrv) Stop() {
this.listener.Close()
this.thgo.CloseWait()
}
// 遍历所有被动连接,返回false就退出遍历
func (this *NetSrv) RangeSess(f func(sess INetSess) bool) {
this.sessesByID.Range(func(key, value any) bool {
return f(value.(INetSess))
})
}
// 获取会话
func (this *NetSrv) GetClientSess(id uint64) (result *NetSess) {
if v, ok := this.sessesByID.Load(id); ok {
result = v.(*NetSess)
}
return
}
// 是否加密
func (this *NetSrv) GetEncryEnabled() bool {
return this.encryEnabled
}
// 连接类型
func (this *NetSrv) GetProtocal() ProtocalEnum {
return this.protocal
}
/* 外部函数 */
////////////////////////////////////////////////////////////////////
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/night-tc/gobige.git
git@gitee.com:night-tc/gobige.git
night-tc
gobige
Gobige
e6ef893c0671

搜索帮助

0d507c66 1850385 C8b1a773 1850385