rewrite broadcast functions

This commit is contained in:
wish
2023-02-12 15:56:04 +11:00
parent 6897a03781
commit 67122eb908
2 changed files with 5 additions and 10 deletions

View File

@@ -269,6 +269,8 @@ func (s *Server) manageSessions() {
// BroadcastMHF queues a MHFPacket to be sent to all sessions.
func (s *Server) BroadcastMHF(pkt mhfpacket.MHFPacket, ignoredSession *Session) {
// Broadcast the data.
s.Lock()
defer s.Unlock()
for _, session := range s.sessions {
if session == ignoredSession {
continue
@@ -291,16 +293,7 @@ func (s *Server) WorldcastMHF(pkt mhfpacket.MHFPacket, ignoredSession *Session,
if c == ignoredChannel {
continue
}
for _, session := range c.sessions {
if session == ignoredSession {
continue
}
bf := byteframe.NewByteFrame()
bf.WriteUint16(uint16(pkt.Opcode()))
pkt.Build(bf, session.clientContext)
bf.WriteUint16(0x0010)
session.QueueSendNonBlocking(bf.Data())
}
c.BroadcastMHF(pkt, ignoredSession)
}
}

View File

@@ -72,6 +72,8 @@ func (s *Stage) BroadcastMHF(pkt mhfpacket.MHFPacket, ignoredSession *Session) {
s.Lock()
defer s.Unlock()
// Broadcast the data.
s.Lock()
defer s.Unlock()
for session := range s.clients {
if session == ignoredSession {
continue