Skip to content

Commit

Permalink
Merge pull request #93 from singchia/feat/adjust-server-delegate
Browse files Browse the repository at this point in the history
conn: adjust GetClientID function's signature, add wantedID field
  • Loading branch information
singchia authored May 16, 2024
2 parents d18a269 + 9f9c649 commit 2eb208a
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion conn/conn_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ func (sc *ServerConn) handleInConnPacket(pkt *packet.ConnPacket) iodefine.IORet
sc.meta = pkt.ConnData.Meta
if pkt.ClientIDAcquire() {
if sc.dlgt != nil {
sc.clientID, err = sc.dlgt.GetClientID(sc.meta)
sc.clientID, err = sc.dlgt.GetClientID(pkt.ClientID, sc.meta)
}
if sc.clientID == 0 && err == nil {
// if delegate returns 0 meaning use a ID by inner
Expand Down
2 changes: 1 addition & 1 deletion conn/delegate.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ type ClientConnDelegate interface {
type ServerConnDelegate interface {
Delegate
Heartbeat(delegate.ConnDescriber) error
GetClientID(meta []byte) (uint64, error)
GetClientID(wantedID uint64, meta []byte) (uint64, error)
}
10 changes: 5 additions & 5 deletions conn/example/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ func newServer() *server {
func (s *server) ConnOnline(_ delegate.ConnDescriber) error { return nil }
func (s *server) ConnOffline(_ delegate.ConnDescriber) error { return nil }
func (s *server) Heartbeat(_ delegate.ConnDescriber) error { return nil }
func (s *server) GetClientID(meta []byte) (uint64, error) {
func (s *server) GetClientID(_ uint64, meta []byte) (uint64, error) {
return s.idFactory.GetID(), nil
}

func forceFree() {
for _ = range time.Tick(30 * time.Second) {
for range time.Tick(30 * time.Second) {
debug.FreeOSMemory()
}
}
Expand Down Expand Up @@ -90,7 +90,7 @@ func main() {
}
rc, ok := clients.Load(clientID)
if !ok {
log.Error("clientID not found '%d'\n", clientID)
log.Errorf("clientID not found '%d'\n", clientID)
continue
}
rc.(*conn.ServerConn).Close()
Expand Down Expand Up @@ -127,15 +127,15 @@ func main() {
for {
netconn, err := ln.Accept()
if err != nil {
log.Error("accept err: %s", err)
log.Errorf("accept err: %s", err)
break
}
go func(netconn net.Conn) {
rc, err := conn.NewServerConn(netconn,
conn.OptionServerConnPacketFactory(pf),
conn.OptionServerConnDelegate(server))
if err != nil {
log.Error("new recvconn err: %s", err)
log.Errorf("new recvconn err: %s", err)
return
}
clients.Store(rc.ClientID(), rc)
Expand Down
2 changes: 1 addition & 1 deletion delegate/delegate.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ type ServerConnDelegate interface {
ClientConnDelegate
Heartbeat(ConnDescriber) error
// requirements
GetClientID(meta []byte) (uint64, error)
GetClientID(wantedID uint64, meta []byte) (uint64, error)
}

// dialogue layer delegation
Expand Down
2 changes: 1 addition & 1 deletion examples/chatroom/server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func NewChatRoom() *ChatRoom {
}
}

func (room *ChatRoom) GetClientID(meta []byte) (uint64, error) {
func (room *ChatRoom) GetClientID(_ uint64, meta []byte) (uint64, error) {
room.mtx.RLock()
defer room.mtx.RUnlock()

Expand Down

0 comments on commit 2eb208a

Please sign in to comment.