rework extensions

add log extension
implement client unsubscribe
This commit is contained in:
Marcelo Pires
2018-09-06 12:27:19 +02:00
parent 23ae14adea
commit c8bfbbd8fd
4 changed files with 78 additions and 31 deletions

31
extensions/debug.go Normal file
View File

@ -0,0 +1,31 @@
package extensions
import (
"encoding/json"
"github.com/thesyncim/faye/message"
"io"
"log"
)
func debugJson(v interface{}) string {
b, _ := json.MarshalIndent(v, "", " ")
return string(b)
}
type DebugExtension struct {
in *log.Logger
out *log.Logger
}
func NewDebugExtension(out io.Writer) *DebugExtension {
li := log.New(out, "InMsg", 0)
lo := log.New(out, "outMsg", 0)
return &DebugExtension{in: li, out: lo}
}
func (d *DebugExtension) InExtension(m *message.Message) {
d.in.Println(debugJson(m))
}
func (d *DebugExtension) OutExtension(m *message.Message) {
d.out.Println(debugJson(m))
}