Adds errors output to API

This commit is contained in:
Alexey Khit
2022-12-05 20:03:26 +03:00
parent 7057b4846f
commit b965c191b7
7 changed files with 46 additions and 33 deletions
+6 -6
View File
@@ -14,7 +14,7 @@ type Message struct {
Value interface{} `json:"value,omitempty"`
}
type WSHandler func(tr *Transport, msg *Message)
type WSHandler func(tr *Transport, msg *Message) error
func HandleWS(msgType string, handler WSHandler) {
wsHandlers[msgType] = handler
@@ -84,7 +84,11 @@ func apiWS(w http.ResponseWriter, r *http.Request) {
}
if handler := wsHandlers[msg.Type]; handler != nil {
handler(tr, msg)
go func() {
if err = handler(tr, msg); err != nil {
tr.Write(&Message{Type: "error", Value: msg.Type + ": " + err.Error()})
}
}()
}
}
@@ -125,10 +129,6 @@ func (t *Transport) Close() {
}
}
func (t *Transport) Error(err error) {
t.Write(&Message{Type: "error", Value: err.Error()})
}
func (t *Transport) OnChange(f func()) {
t.onChange = f
}