neko/internal/websocket/handler/send.go

34 lines
888 B
Go
Raw Normal View History

2021-01-29 03:56:50 +13:00
package handler
import (
"demodesk/neko/internal/types"
"demodesk/neko/internal/types/message"
"demodesk/neko/internal/types/event"
)
func (h *MessageHandlerCtx) sendUnicast(session types.Session, payload *message.SendUnicast) error {
receiver, ok := h.sessions.Get(payload.Receiver)
if !ok {
h.logger.Debug().Str("id", session.ID()).Msg("receiver ID not found")
return nil
}
return receiver.Send(message.SendUnicast{
Event: event.SEND_UNICAST,
Sender: session.ID(),
Receiver: receiver.ID(),
Subject: payload.Subject,
Body: payload.Body,
})
}
func (h *MessageHandlerCtx) sendBroadcast(session types.Session, payload *message.SendBroadcast) error {
h.sessions.Broadcast(message.SendBroadcast{
Event: event.SEND_BROADCAST,
Sender: session.ID(),
Subject: payload.Subject,
Body: payload.Body,
}, []string{ session.ID() })
return nil
}