github.com/glide-im/glide@v1.6.0/pkg/messaging/messaging.go (about) 1 package messaging 2 3 import ( 4 "github.com/glide-im/glide/pkg/gate" 5 "github.com/glide-im/glide/pkg/messages" 6 "github.com/glide-im/glide/pkg/subscription" 7 ) 8 9 // MessageHandler is the interface for message handler 10 type MessageHandler interface { 11 // Handle handles the message, returns true if the message is handled, 12 // otherwise the message is delegated to next handler. 13 Handle(h *MessageInterfaceImpl, cliInfo *gate.Info, message *messages.GlideMessage) bool 14 } 15 16 // Interface for messaging. 17 type Interface interface { 18 19 // Handle handles message from gate, the entry point for the messaging. 20 Handle(clientInfo *gate.Info, msg *messages.GlideMessage) error 21 22 AddHandler(i MessageHandler) 23 } 24 25 type Messaging interface { 26 Interface 27 28 SetSubscription(g subscription.Interface) 29 30 SetGate(g gate.Gateway) 31 } 32 33 // Server is the messaging server. 34 type Server interface { 35 Messaging 36 37 Run() error 38 }