mirror of
https://github.com/kataras/iris.git
synced 2025-03-21 12:46:27 +01:00
websocket: fix a bug on emit on specific room when it doesn't exist it sends to all connections caused by a third-party contributor's PR...
Former-commit-id: de6fddadd7cef8537ad1d1aff1acd991e4cf99cf
This commit is contained in:
parent
087c8c8b3a
commit
0db2afea93
|
@ -511,6 +511,7 @@ func (c *connection) To(to string) Emitter {
|
||||||
} else if to == c.id {
|
} else if to == c.id {
|
||||||
return c.self
|
return c.self
|
||||||
}
|
}
|
||||||
|
|
||||||
// is an emitter to another client/connection
|
// is an emitter to another client/connection
|
||||||
return newEmitter(c, to)
|
return newEmitter(c, to)
|
||||||
}
|
}
|
||||||
|
|
|
@ -375,7 +375,8 @@ func (s *Server) GetConnectionsByRoom(roomName string) []Connection {
|
||||||
// You SHOULD use connection.EmitMessage/Emit/To().Emit/EmitMessage instead.
|
// You SHOULD use connection.EmitMessage/Emit/To().Emit/EmitMessage instead.
|
||||||
// let's keep it unexported for the best.
|
// let's keep it unexported for the best.
|
||||||
func (s *Server) emitMessage(from, to string, data []byte) {
|
func (s *Server) emitMessage(from, to string, data []byte) {
|
||||||
if to != All && to != Broadcast && s.rooms[to] != nil {
|
if to != All && to != Broadcast {
|
||||||
|
if s.rooms[to] != nil {
|
||||||
// it suppose to send the message to a specific room/or a user inside its own room
|
// it suppose to send the message to a specific room/or a user inside its own room
|
||||||
for _, connectionIDInsideRoom := range s.rooms[to] {
|
for _, connectionIDInsideRoom := range s.rooms[to] {
|
||||||
if c := s.connections.get(connectionIDInsideRoom); c != nil {
|
if c := s.connections.get(connectionIDInsideRoom); c != nil {
|
||||||
|
@ -389,6 +390,7 @@ func (s *Server) emitMessage(from, to string, data []byte) {
|
||||||
s.Leave(cid, to)
|
s.Leave(cid, to)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// it suppose to send the message to all opened connections or to all except the sender
|
// it suppose to send the message to all opened connections or to all except the sender
|
||||||
for _, cKV := range s.connections {
|
for _, cKV := range s.connections {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user