"github.com/iotbzh/xds-agent/lib/apiv1"
)
-var _EVTAllList = []string{
- apiv1.EVTServerConfig,
- apiv1.EVTProjectAdd,
- apiv1.EVTProjectDelete,
- apiv1.EVTProjectChange,
-}
-
// EventDef Definition on one event
type EventDef struct {
sids map[string]int
// NewEvents creates an instance of Events
func NewEvents(ctx *Context) *Events {
evMap := make(map[string]*EventDef)
- for _, ev := range _EVTAllList {
+ for _, ev := range apiv1.EVTAllList {
evMap[ev] = &EventDef{
sids: make(map[string]int),
}
// GetList returns the list of all supported events
func (e *Events) GetList() []string {
- return _EVTAllList
+ return apiv1.EVTAllList
}
// Register Used by a client/session to register to a specific (or all) event(s)
func (e *Events) Register(evName, sessionID string) error {
- evs := _EVTAllList
+ evs := apiv1.EVTAllList
if evName != apiv1.EVTAll {
if _, ok := e.eventsMap[evName]; !ok {
return fmt.Errorf("Unsupported event type name")
// UnRegister Used by a client/session to unregister event(s)
func (e *Events) UnRegister(evName, sessionID string) error {
- evs := _EVTAllList
+ evs := apiv1.EVTAllList
if evName != apiv1.EVTAll {
if _, ok := e.eventsMap[evName]; !ok {
return fmt.Errorf("Unsupported event type name")
so := e.webServer.sessions.IOSocketGet(sid)
if so == nil {
if firstErr == nil {
- firstErr = fmt.Errorf("IOSocketGet return nil")
+ firstErr = fmt.Errorf("IOSocketGet return nil (SID=%v)", sid)
}
continue
}
p.folder.DataCloudSync.STSvrStatus = evt.Folder.Status
if err := p.events.Emit(apiv1.EVTProjectChange, p.server.FolderToProject(*p.folder)); err != nil {
- p.Log.Warningf("Cannot notify project change: %v", err)
+ p.Log.Warningf("Cannot notify project change (from server): %v", err)
}
}
return nil
p.folder.DataCloudSync.STLocStatus = sts
if err := p.events.Emit(apiv1.EVTProjectChange, p.server.FolderToProject(*p.folder)); err != nil {
- p.Log.Warningf("Cannot notify project change: %v", err)
+ p.Log.Warningf("Cannot notify project change (local): %v", err)
}
}
}
"github.com/gin-contrib/static"
"github.com/gin-gonic/gin"
"github.com/googollee/go-socket.io"
+ "github.com/iotbzh/xds-agent/lib/apiv1"
)
// WebServer .
so.On("disconnection", func() {
s.Log.Debugf("WS disconnected (WSID=%s, SID=%s)", so.Id(), sess.ID)
s.sessions.UpdateIOSocket(sess.ID, nil)
+ s.events.UnRegister(apiv1.EVTAll, sess.ID)
})
})