github.com/secoba/wails/v2@v2.6.4/internal/frontend/dispatcher/events.go (about) 1 package dispatcher 2 3 import ( 4 "encoding/json" 5 "errors" 6 7 "github.com/secoba/wails/v2/internal/frontend" 8 ) 9 10 type EventMessage struct { 11 Name string `json:"name"` 12 Data []interface{} `json:"data"` 13 } 14 15 func (d *Dispatcher) processEventMessage(message string, sender frontend.Frontend) (string, error) { 16 if len(message) < 3 { 17 return "", errors.New("Invalid Event Message: " + message) 18 } 19 20 switch message[1] { 21 case 'E': 22 var eventMessage EventMessage 23 err := json.Unmarshal([]byte(message[2:]), &eventMessage) 24 if err != nil { 25 return "", err 26 } 27 go d.events.Notify(sender, eventMessage.Name, eventMessage.Data...) 28 case 'X': 29 eventName := message[2:] 30 go d.events.Off(eventName) 31 } 32 33 return "", nil 34 }