func NewClientWithServerInfo(user, pass, resource, authType, host, domain, conf string) (*Client, error) {
	connection, err := xmpp.Dial(host)

	var b bytes.Buffer
	if err := xml.EscapeText(&b, []byte(pass)); err != nil {
		return nil, err
	}

	c := &Client{
		AuthType: authType,
		Username: user,
		Password: b.String(),
		Resource: resource,
		Id:       user + "@" + domain,

		// private
		connection:      connection,
		mentionNames:    make(map[string]string),
		receivedUsers:   make(chan []*User),
		receivedRooms:   make(chan []*Room),
		receivedMessage: make(chan *Message),
		host:            host,
		domain:          domain,
		conf:            conf,
	}

	if err != nil {
		return c, err
	}

	err = c.authenticate()
	if err != nil {
		return c, err
	}

	go c.listen()
	return c, nil
}
func NewClientWithServerInfo(user, pass, resource, authType, host, domain, conf string) (*Client, error) {
	connection, err := xmpp.Dial(host)

	var b bytes.Buffer
	if err := xml.EscapeText(&b, []byte(pass)); err != nil {
		return nil, err
	}

	c := &Client{
		AuthType: authType,
		Username: user,
		Password: b.String(),
		Resource: resource,
		Id:       user + "@" + domain,

		
		connection:      connection,
		mentionNames:    make(map[string]string),
		receivedUsers:   make(chan []*User),
		receivedRooms:   make(chan []*Room),
		receivedMessage: make(chan *Message),
		host:            host,
		domain:          domain,
		conf:            conf,
	}

	if err != nil {
		return c, err
	}

	err = c.authenticate()
	if err != nil {
		return c, err
	}

	go c.listen()
	return c, nil
}
func NewClientWithServerInfo ( user , pass , resource , authType , host , domain , conf string ) ( * Client , error ) { connection , err := xmpp . Dial ( host ) var b bytes . Buffer if err := xml . EscapeText ( & b , [ ] byte ( pass ) ) ; err != nil { return nil , err } c := & Client { AuthType : authType , Username : user , Password : b . String ( ) , Resource : resource , Id : user + " " + domain , // private connection : connection , mentionNames : make ( map [ string ] string ) , receivedUsers : make ( chan [ ] * User ) , receivedRooms : make ( chan [ ] * Room ) , receivedMessage : make ( chan * Message ) , host : host , domain : domain , conf : conf , } if err != nil { return c , err } err = c . authenticate ( ) if err != nil { return c , err } go c . listen ( ) return c , nil }
// NewClientWithServerInfo creates a new Client connection from the user name, password,
// resource, host URL and conf URL passed to it.
NewClientWithServerInfo creates a new Client connection from the user name password resource host URL and conf URL passed to it .