无标题文章

2017-08-30  本文已影响1人  ddatsh

package main

import (
"log"
"os"

"github.com/troian/surgemq"
"github.com/troian/surgemq/auth"
"github.com/troian/surgemq/persistence/types"
"github.com/troian/surgemq/transport"

)

type anonymousAuth struct {
}

func (a anonymousAuth) Password(user, password string) auth.Status {

return auth.StatusAllow

}

func (a anonymousAuth) ACL(clientID, user, topic string, access auth.AccessType) auth.Status {
return auth.StatusAllow
}

func main() {

var err error
var srv surgemq.Server
ia := anonymousAuth{}

serverConfig := surgemq.NewServerConfig()
serverConfig.Authenticators = "internal"
if err = auth.Register("internal", ia); err != nil {
    log.Printf("Couldn't register *internal* auth provider %s", err)
    os.Exit(1)
}

serverConfig.Persistence = &persistenceTypes.MemConfig{}
srv, err = surgemq.NewServer(serverConfig)
if err != nil {
    log.Printf("Couldn't create server %s", err)
    os.Exit(1)
}

var authMng *auth.Manager

if authMng, err = auth.NewManager("internal"); err != nil {
    log.Printf("Couldn't register *amqp* auth provider %s", err)
    return
}

config := transport.NewConfigTCP(
    &transport.Config{
        Port:        1883,
        AuthManager: authMng,
    })
if err = srv.ListenAndServe(config); err != nil {
    log.Printf("Couldn't start listener %s", err)
}
select {

}

}

上一篇 下一篇

猜你喜欢

热点阅读