neko/internal/websocket/handler/send.go

41 lines
936 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/event"
2021-02-15 02:40:17 +13:00
"demodesk/neko/internal/types/message"
2021-01-29 03:56:50 +13:00
)
func (h *MessageHandlerCtx) sendUnicast(session types.Session, payload *message.SendUnicast) error {
2021-08-30 04:23:58 +12:00
logger := h.logger.With().Str("session_id", session.ID()).Logger()
2021-01-29 03:56:50 +13:00
receiver, ok := h.sessions.Get(payload.Receiver)
if !ok {
2021-08-30 04:23:58 +12:00
logger.Debug().Msg("receiver session ID not found")
2021-01-29 03:56:50 +13:00
return nil
}
2021-09-02 07:58:39 +12:00
receiver.Send(
event.SEND_UNICAST,
message.SendUnicast{
Sender: session.ID(),
Receiver: receiver.ID(),
Subject: payload.Subject,
Body: payload.Body,
})
return nil
2021-01-29 03:56:50 +13:00
}
func (h *MessageHandlerCtx) sendBroadcast(session types.Session, payload *message.SendBroadcast) error {
2021-09-02 07:58:39 +12:00
h.sessions.Broadcast(
event.SEND_BROADCAST,
message.SendBroadcast{
Sender: session.ID(),
Subject: payload.Subject,
Body: payload.Body,
}, []string{session.ID()})
2021-03-16 22:53:03 +13:00
2021-01-29 03:56:50 +13:00
return nil
}