node build fixed
This commit is contained in:
75
seanime-2.9.10/internal/events/websocket_mock.go
Normal file
75
seanime-2.9.10/internal/events/websocket_mock.go
Normal file
@@ -0,0 +1,75 @@
|
||||
package events
|
||||
|
||||
import (
|
||||
"seanime/internal/util/result"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
type (
|
||||
MockWSEventManager struct {
|
||||
Conn interface{}
|
||||
Logger *zerolog.Logger
|
||||
ClientEventSubscribers *result.Map[string, *ClientEventSubscriber]
|
||||
}
|
||||
|
||||
MockWSEvent struct {
|
||||
Type string `json:"type"`
|
||||
Payload interface{} `json:"payload"`
|
||||
}
|
||||
)
|
||||
|
||||
func NewMockWSEventManager(logger *zerolog.Logger) *MockWSEventManager {
|
||||
return &MockWSEventManager{
|
||||
Logger: logger,
|
||||
ClientEventSubscribers: result.NewResultMap[string, *ClientEventSubscriber](),
|
||||
}
|
||||
}
|
||||
|
||||
// SendEvent sends a websocket event to the client.
|
||||
func (m *MockWSEventManager) SendEvent(t string, payload interface{}) {
|
||||
m.Logger.Trace().Any("payload", payload).Str("type", t).Msg("ws: Sent message")
|
||||
}
|
||||
|
||||
func (m *MockWSEventManager) SendEventTo(clientId string, t string, payload interface{}, noLog ...bool) {
|
||||
if len(noLog) == 0 || !noLog[0] {
|
||||
m.Logger.Trace().Any("payload", payload).Str("type", t).Str("clientId", clientId).Msg("ws: Sent message to client")
|
||||
}
|
||||
}
|
||||
|
||||
func (m *MockWSEventManager) SubscribeToClientEvents(id string) *ClientEventSubscriber {
|
||||
subscriber := &ClientEventSubscriber{
|
||||
Channel: make(chan *WebsocketClientEvent),
|
||||
}
|
||||
m.ClientEventSubscribers.Set(id, subscriber)
|
||||
return subscriber
|
||||
}
|
||||
|
||||
func (m *MockWSEventManager) SubscribeToClientNativePlayerEvents(id string) *ClientEventSubscriber {
|
||||
subscriber := &ClientEventSubscriber{
|
||||
Channel: make(chan *WebsocketClientEvent),
|
||||
}
|
||||
m.ClientEventSubscribers.Set(id, subscriber)
|
||||
return subscriber
|
||||
}
|
||||
|
||||
func (m *MockWSEventManager) SubscribeToClientNakamaEvents(id string) *ClientEventSubscriber {
|
||||
subscriber := &ClientEventSubscriber{
|
||||
Channel: make(chan *WebsocketClientEvent),
|
||||
}
|
||||
m.ClientEventSubscribers.Set(id, subscriber)
|
||||
return subscriber
|
||||
}
|
||||
|
||||
func (m *MockWSEventManager) UnsubscribeFromClientEvents(id string) {
|
||||
m.ClientEventSubscribers.Delete(id)
|
||||
}
|
||||
|
||||
////
|
||||
|
||||
func (m *MockWSEventManager) MockSendClientEvent(event *WebsocketClientEvent) {
|
||||
m.ClientEventSubscribers.Range(func(key string, subscriber *ClientEventSubscriber) bool {
|
||||
subscriber.Channel <- event
|
||||
return true
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user