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() {
|
func (slf *event) check() {
|
||||||
switch slf.network {
|
switch slf.network {
|
||||||
case NetworkHttp, NetworkGRPC:
|
case NetworkHttp, NetworkGRPC, NetworkNone:
|
||||||
default:
|
default:
|
||||||
if len(slf.connectionReceivePacketEventHandles) == 0 {
|
if len(slf.connectionReceivePacketEventHandles) == 0 {
|
||||||
log.Warn("Server", log.String("ConnectionReceivePacketEvent", "invalid server, no packets processed"))
|
log.Warn("Server", log.String("ConnectionReceivePacketEvent", "invalid server, no packets processed"))
|
||||||
|
|
|
@ -3,6 +3,8 @@ package server
|
||||||
type Network string
|
type Network string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
// NetworkNone 该模式下不监听任何网络端口,仅开启消息队列,适用于纯粹的跨服服务器等情况
|
||||||
|
NetworkNone Network = "none"
|
||||||
NetworkTcp Network = "tcp"
|
NetworkTcp Network = "tcp"
|
||||||
NetworkTcp4 Network = "tcp4"
|
NetworkTcp4 Network = "tcp4"
|
||||||
NetworkTcp6 Network = "tcp6"
|
NetworkTcp6 Network = "tcp6"
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
"github.com/kercylan98/minotaur/utils/concurrent"
|
"github.com/kercylan98/minotaur/utils/concurrent"
|
||||||
"github.com/kercylan98/minotaur/utils/log"
|
"github.com/kercylan98/minotaur/utils/log"
|
||||||
|
"github.com/kercylan98/minotaur/utils/str"
|
||||||
"github.com/kercylan98/minotaur/utils/super"
|
"github.com/kercylan98/minotaur/utils/super"
|
||||||
"github.com/kercylan98/minotaur/utils/timer"
|
"github.com/kercylan98/minotaur/utils/timer"
|
||||||
"github.com/kercylan98/minotaur/utils/times"
|
"github.com/kercylan98/minotaur/utils/times"
|
||||||
|
@ -99,17 +100,21 @@ type Server struct {
|
||||||
|
|
||||||
// Run 使用特定地址运行服务器
|
// Run 使用特定地址运行服务器
|
||||||
//
|
//
|
||||||
// server.NetworkTcp (addr:":8888")
|
// server.NetworkTcp (addr:":8888")
|
||||||
// server.NetworkTcp4 (addr:":8888")
|
// server.NetworkTcp4 (addr:":8888")
|
||||||
// server.NetworkTcp6 (addr:":8888")
|
// server.NetworkTcp6 (addr:":8888")
|
||||||
// server.NetworkUdp (addr:":8888")
|
// server.NetworkUdp (addr:":8888")
|
||||||
// server.NetworkUdp4 (addr:":8888")
|
// server.NetworkUdp4 (addr:":8888")
|
||||||
// server.NetworkUdp6 (addr:":8888")
|
// server.NetworkUdp6 (addr:":8888")
|
||||||
// server.NetworkUnix (addr:"socketPath")
|
// server.NetworkUnix (addr:"socketPath")
|
||||||
// server.NetworkHttp (addr:":8888")
|
// server.NetworkHttp (addr:":8888")
|
||||||
// server.NetworkWebsocket (addr:":8888/ws")
|
// server.NetworkWebsocket (addr:":8888/ws")
|
||||||
// server.NetworkKcp (addr:":8888")
|
// server.NetworkKcp (addr:":8888")
|
||||||
|
// server.NetworkNone (addr:"")
|
||||||
func (slf *Server) Run(addr string) error {
|
func (slf *Server) Run(addr string) error {
|
||||||
|
if slf.network == NetworkNone {
|
||||||
|
addr = "-"
|
||||||
|
}
|
||||||
if slf.event == nil {
|
if slf.event == nil {
|
||||||
return ErrConstructed
|
return ErrConstructed
|
||||||
}
|
}
|
||||||
|
@ -143,6 +148,11 @@ func (slf *Server) Run(addr string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
switch slf.network {
|
switch slf.network {
|
||||||
|
case NetworkNone:
|
||||||
|
go connectionInitHandle(func() {
|
||||||
|
slf.isRunning = true
|
||||||
|
slf.OnStartBeforeEvent()
|
||||||
|
})
|
||||||
case NetworkGRPC:
|
case NetworkGRPC:
|
||||||
listener, err := net.Listen(string(NetworkTcp), slf.addr)
|
listener, err := net.Listen(string(NetworkTcp), slf.addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -346,6 +356,11 @@ func (slf *Server) Run(addr string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RunNone 是 Run("") 的简写,仅适用于运行 NetworkNone 服务器
|
||||||
|
func (slf *Server) RunNone() error {
|
||||||
|
return slf.Run(str.None)
|
||||||
|
}
|
||||||
|
|
||||||
// GetOnlineCount 获取在线人数
|
// GetOnlineCount 获取在线人数
|
||||||
func (slf *Server) GetOnlineCount() int {
|
func (slf *Server) GetOnlineCount() int {
|
||||||
return slf.online.Size()
|
return slf.online.Size()
|
||||||
|
|
Loading…
Reference in New Issue