feat: server 新增 NetworkNone 网络类型,该模式下不监听任何网络端口,仅开启消息队列,适用于纯粹的跨服服务器等情况
This commit is contained in:
parent
7af513a762
commit
dcfb3da534
|
@ -314,7 +314,7 @@ func (slf *event) OnConnectionPacketPreprocessEvent(conn *Conn, packet []byte, u
|
|||
|
||||
func (slf *event) check() {
|
||||
switch slf.network {
|
||||
case NetworkHttp, NetworkGRPC:
|
||||
case NetworkHttp, NetworkGRPC, NetworkNone:
|
||||
default:
|
||||
if len(slf.connectionReceivePacketEventHandles) == 0 {
|
||||
log.Warn("Server", log.String("ConnectionReceivePacketEvent", "invalid server, no packets processed"))
|
||||
|
|
|
@ -3,6 +3,8 @@ package server
|
|||
type Network string
|
||||
|
||||
const (
|
||||
// NetworkNone 该模式下不监听任何网络端口,仅开启消息队列,适用于纯粹的跨服服务器等情况
|
||||
NetworkNone Network = "none"
|
||||
NetworkTcp Network = "tcp"
|
||||
NetworkTcp4 Network = "tcp4"
|
||||
NetworkTcp6 Network = "tcp6"
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"github.com/gorilla/websocket"
|
||||
"github.com/kercylan98/minotaur/utils/concurrent"
|
||||
"github.com/kercylan98/minotaur/utils/log"
|
||||
"github.com/kercylan98/minotaur/utils/str"
|
||||
"github.com/kercylan98/minotaur/utils/super"
|
||||
"github.com/kercylan98/minotaur/utils/timer"
|
||||
"github.com/kercylan98/minotaur/utils/times"
|
||||
|
@ -109,7 +110,11 @@ type Server struct {
|
|||
// server.NetworkHttp (addr:":8888")
|
||||
// server.NetworkWebsocket (addr:":8888/ws")
|
||||
// server.NetworkKcp (addr:":8888")
|
||||
// server.NetworkNone (addr:"")
|
||||
func (slf *Server) Run(addr string) error {
|
||||
if slf.network == NetworkNone {
|
||||
addr = "-"
|
||||
}
|
||||
if slf.event == nil {
|
||||
return ErrConstructed
|
||||
}
|
||||
|
@ -143,6 +148,11 @@ func (slf *Server) Run(addr string) error {
|
|||
}
|
||||
|
||||
switch slf.network {
|
||||
case NetworkNone:
|
||||
go connectionInitHandle(func() {
|
||||
slf.isRunning = true
|
||||
slf.OnStartBeforeEvent()
|
||||
})
|
||||
case NetworkGRPC:
|
||||
listener, err := net.Listen(string(NetworkTcp), slf.addr)
|
||||
if err != nil {
|
||||
|
@ -346,6 +356,11 @@ func (slf *Server) Run(addr string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// RunNone 是 Run("") 的简写,仅适用于运行 NetworkNone 服务器
|
||||
func (slf *Server) RunNone() error {
|
||||
return slf.Run(str.None)
|
||||
}
|
||||
|
||||
// GetOnlineCount 获取在线人数
|
||||
func (slf *Server) GetOnlineCount() int {
|
||||
return slf.online.Size()
|
||||
|
|
Loading…
Reference in New Issue