forked from genofire/unified-push-xmpp
distributor: check server for msgoffline support XEP-0160
with discovery XEP-0030 ;) wip #8
This commit is contained in:
parent
29cf678106
commit
63aa921252
|
@ -35,3 +35,5 @@ require (
|
|||
)
|
||||
|
||||
replace dev.sum7.eu/genofire/unified-push-xmpp/messages => ../messages
|
||||
|
||||
replace mellium.im/xmpp => ../../../../mellium.im/xmpp
|
||||
|
|
|
@ -12,6 +12,7 @@ import (
|
|||
"mellium.im/sasl"
|
||||
"mellium.im/xmlstream"
|
||||
"mellium.im/xmpp"
|
||||
"mellium.im/xmpp/disco"
|
||||
"mellium.im/xmpp/jid"
|
||||
"mellium.im/xmpp/mux"
|
||||
"mellium.im/xmpp/stanza"
|
||||
|
@ -62,7 +63,9 @@ func (s *XMPPService) Run(dbus *distributor.DBus, store *storage.Storage) error
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
go s.checkServer()
|
||||
s.session.Serve(mux.New(
|
||||
// disco.Handle(),
|
||||
mux.MessageFunc("", xml.Name{Local: "subject"}, s.message),
|
||||
))
|
||||
return nil
|
||||
|
@ -116,6 +119,28 @@ func (s *XMPPService) message(msgHead stanza.Message, t xmlstream.TokenReadEncod
|
|||
return nil
|
||||
}
|
||||
|
||||
// checkServer - background job
|
||||
func (s *XMPPService) checkServer() error {
|
||||
domain := s.session.LocalAddr().Domain()
|
||||
log.Infof("your instant is %s - check running", domain)
|
||||
info, err := disco.GetInfo(context.TODO(), "", domain, s.session)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// check if server support msgoffline
|
||||
supportMSGOffline := false
|
||||
for _, f := range info.Features {
|
||||
if f.Var == "msgoffline" {
|
||||
supportMSGOffline = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !supportMSGOffline {
|
||||
log.Warn("your server does not support offline messages (XEP-0160) - it is need to deliever messages later, if this distributer has current no connection")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Register handler of DBUS Distribution
|
||||
func (s *XMPPService) Register(appID, appToken string) (string, string, error) {
|
||||
publicToken := uuid.New().String()
|
||||
|
|
Loading…
Reference in New Issue