mirror of
https://github.com/m1k1o/neko.git
synced 2025-08-02 08:19:14 +02:00
Refactor websocket session sync (#44)
* refactor websocket peer and comment functions. * update comments. * add DestroyWebSocketPeer.
This commit is contained in:
parent
43f8fe339f
commit
0ea1c2870f
5 changed files with 84 additions and 61 deletions
|
@ -207,19 +207,18 @@ func (manager *WebSocketManagerCtx) Upgrade(checkOrigin types.CheckOrigin) types
|
|||
}
|
||||
|
||||
func (manager *WebSocketManagerCtx) connect(connection *websocket.Conn, r *http.Request) {
|
||||
// create new peer
|
||||
peer := newPeer(connection)
|
||||
|
||||
session, err := manager.sessions.Authenticate(r)
|
||||
if err != nil {
|
||||
manager.logger.Warn().Err(err).Msg("authentication failed")
|
||||
peer.Destroy(err.Error())
|
||||
newPeer(manager.logger, connection).Destroy(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
// add session id to all log messages
|
||||
logger := manager.logger.With().Str("session_id", session.ID()).Logger()
|
||||
peer.setSessionID(session.ID())
|
||||
|
||||
// create new peer
|
||||
peer := newPeer(logger, connection)
|
||||
|
||||
if !session.Profile().CanConnect {
|
||||
logger.Warn().Msg("connection disabled")
|
||||
|
@ -238,14 +237,12 @@ func (manager *WebSocketManagerCtx) connect(connection *websocket.Conn, r *http.
|
|||
logger.Info().Msg("replacing peer connection")
|
||||
}
|
||||
|
||||
session.SetWebSocketPeer(peer)
|
||||
|
||||
logger.Info().
|
||||
Str("address", connection.RemoteAddr().String()).
|
||||
Str("agent", r.UserAgent()).
|
||||
Msg("connection started")
|
||||
|
||||
session.SetWebSocketConnected(peer, true, false)
|
||||
session.ConnectWebSocketPeer(peer)
|
||||
|
||||
// this is a blocking function that lives
|
||||
// throughout whole websocket connection
|
||||
|
@ -277,7 +274,7 @@ func (manager *WebSocketManagerCtx) connect(connection *websocket.Conn, r *http.
|
|||
}
|
||||
}
|
||||
|
||||
session.SetWebSocketConnected(peer, false, delayedDisconnect)
|
||||
session.DisconnectWebSocketPeer(peer, delayedDisconnect)
|
||||
}
|
||||
|
||||
func (manager *WebSocketManagerCtx) handle(connection *websocket.Conn, peer types.WebSocketPeer, session types.Session) error {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue