session websocket add event.

This commit is contained in:
Miroslav Šedivý 2021-09-01 21:16:36 +02:00
parent 5b5e541cc0
commit 3ac1b481ad
3 changed files with 10 additions and 14 deletions

View File

@ -197,7 +197,7 @@ func (manager *SessionManagerCtx) ClearHost() {
// broadcasts
// ---
func (manager *SessionManagerCtx) Broadcast(v interface{}, exclude interface{}) {
func (manager *SessionManagerCtx) Broadcast(event string, payload interface{}, exclude interface{}) {
manager.sessionsMu.Lock()
defer manager.sessionsMu.Unlock()
@ -212,13 +212,11 @@ func (manager *SessionManagerCtx) Broadcast(v interface{}, exclude interface{})
}
}
if err := session.Send(v); err != nil {
manager.logger.Warn().Err(err).Msgf("broadcasting event has failed")
}
session.Send(event, payload)
}
}
func (manager *SessionManagerCtx) AdminBroadcast(v interface{}, exclude interface{}) {
func (manager *SessionManagerCtx) AdminBroadcast(event string, payload interface{}, exclude interface{}) {
manager.sessionsMu.Lock()
defer manager.sessionsMu.Unlock()
@ -233,9 +231,7 @@ func (manager *SessionManagerCtx) AdminBroadcast(v interface{}, exclude interfac
}
}
if err := session.Send(v); err != nil {
manager.logger.Warn().Err(err).Msgf("broadcasting admin event has failed")
}
session.Send(event, payload)
}
}

View File

@ -79,12 +79,12 @@ func (session *SessionCtx) GetWebSocketPeer() types.WebSocketPeer {
return session.websocketPeer
}
func (session *SessionCtx) Send(v interface{}) error {
func (session *SessionCtx) Send(event string, payload interface{}) {
if session.websocketPeer == nil {
return nil
return
}
return session.websocketPeer.Send(v)
session.websocketPeer.Send(event, payload)
}
// ---

View File

@ -27,7 +27,7 @@ type Session interface {
SetWebSocketPeer(websocketPeer WebSocketPeer)
SetWebSocketConnected(websocketPeer WebSocketPeer, connected bool)
GetWebSocketPeer() WebSocketPeer
Send(v interface{}) error
Send(event string, payload interface{})
// webrtc
SetWebRTCPeer(webrtcPeer WebRTCPeer)
@ -47,8 +47,8 @@ type SessionManager interface {
GetHost() Session
ClearHost()
Broadcast(v interface{}, exclude interface{})
AdminBroadcast(v interface{}, exclude interface{})
Broadcast(event string, payload interface{}, exclude interface{})
AdminBroadcast(event string, payload interface{}, exclude interface{})
OnCreated(listener func(session Session))
OnDeleted(listener func(session Session))